PHP魔术方法
构造函数
__construct 构造还是 具有构造函数的类在每次创建新对象时先调用此方法,适合做一些初始化工作。
如果 PHP 5 在类中找不到
当
__destruct 析构函数 会在某个对象的所有引用都被删除或者当对象显示销毁时执行。
和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct() 。此外也和构造函数一样,子类如果自己没有定义析构函数则会继承父类的。
析构函数即使在使用
方法重载
__call 在对象中调用一个不可访问方法时,
__callStatic 用静态方式中调用一个不可访问方法时,
属性重载
在给不可访问属性赋值时,
读取不可访问属性的值时,
当对不可访问属性调用
当对不可访问属性调用
属性重载只能在对象中进行。在静态方法中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为
__sleep () 和 __wakeup ()
与之相反,
Note:
__toString
法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。
__invoke
当尝试以调用函数的方式调用一个对象时,
Note:
本特性只在 PHP 5.3.0 及以上版本有效。
_set_state
static object __set_state ( array $properties )
本方法的唯一参数是一个数组,其中包含按 array('property' => value, ...) 格式排列的类属性。
调用 var_expotr() 导出类时,此静态方法会被调用
__debugInfo
在转储对象以获取应显示的属性时,var_dump()调用此方法。如果没有在对象上定义方法,那么将显示所有公共、受保护和私有属性。
了解什么是特征以及如何使用它们的最好方法是观察它们的本质

浙公网安备 33010602011771号