PHP学习笔记——10.魔术方法

1.定义

  是指在某些特定情况下会自动调用的方法

  PHP提供了多个魔术方法,都是以__开头的

2.构造方法 __construct

  当实例化对象时,会自动调用该方法
  可用于在实例化对象时传参,以控制类的属性

  class 类名 {
    private 属性名 = null;
    public function __construct ($形参) {
      $this -> 属性名 = $形参;
    }
  }
  $对象 = new 类名(‘实参‘);
  echo $对象 -> 属性名;

3.析构方法 __destruct

  当使用unset()销毁对象、为对象赋予其他值或页面执行完后会调用该方法

4.自动加载 __autoload

  当实例化针对的类未加载到当前文件中时会自动调用该方法
  且会将类名传入作为参数

  function __autoload ($class) {
    require (‘./‘. $class .‘.php‘);
  }
  $对象 = new 类名();

  注意:
  类的声明是全局有效的(哪怕在函数的内部)
  可使用spl_autoload_regsite(‘方法名‘)将自定义方法
  注册为具有“自动加载”功能的方法

4.其它
  方法名 调用条件
  __clone() 当使用clone()克隆对象时
  __get($形参) 当访问非公共/未定义的属性时
  __set($形参1,$形参2) 当修改非公共/添加未定义的属性时
  __call($形参1,$形参2) 当访问非公共/未定义的方法时
  __callStatic($形参1,$形参2) 当访问非公共/未定义的静态方法时
  __isset() 当对非公共/未定义的属性使用isset()时
  __unset() 当对非公共/未定义的属性使用unset()时

  注意:这些魔术方法在编写框架底层应用时,可以起到非常重要的作用

 

作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 
接,否则保留追究法律责任的权利。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。