标签:变量 oop 一个 成员 父类 接口 methods debuginfo 级别
魔术方法
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为"魔术方法"(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。
注意:PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。
Ⅰ. serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。如果该方法未返回任何内容,则 NULL
被序列化,并产生一个 E_NOTICE
级别的错误。
Note:
__sleep() 不能返回父类的私有成员的名字。这样做会产生一个 E_NOTICE
级别的错误。可以用 Serializable 接口来替代
__toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR
级别的致命错误。
标签:变量 oop 一个 成员 父类 接口 methods debuginfo 级别
原文地址:http://www.cnblogs.com/kevin29/p/7222310.html