PHP魔术方法
介绍
PHP中的魔术方法是旨在执行某些任务的特殊方法。这些方法以双下划线(__)作为前缀命名。所有这些函数名称均已保留,除关联的神奇功能外,不能用于任何其他目的。类中的魔术方法必须声明为public。这些方法充当拦截器,当满足某些条件时会自动调用这些方法。
当前在PHP中可以使用以下神奇方法
__睡觉
public __sleep ( void ) : array
类中的serialize()方法检查它是否具有函数名称__sleep()。如果是这样,则该功能在任何序列化之前执行。应该返回一个数组,其中包含该对象应被序列化的所有变量的名称。
__醒来
public __wakeup ( void ) : void
unserialize()方法检查是否存在一个具有魔术名称__wakeup()的函数。如果存在,此功能可以重建对象可能具有的任何资源。
__连载
public __serialize ( void ) : array
serialize()方法还会检查类是否具有__serialize()方法。如果是这样,它将在任何序列化之前执行。它必须构造并返回代表对象序列化形式的键/值对的关联数组。
__反序列化
public __unserialize ( array $data ) : void
unserialize()还会检查是否存在__unserialize(),它将传递从__serialize()返回的还原数组。然后,它可以根据需要从该数组还原对象的属性。
__toString
public __toString ( void ) : string
__toString()方法描述对象的字符串表示形式。例如,echo $obj; 将打印。此方法必须返回一个字符串
__调用
__invoke ([ $... ] ) : mixed
当脚本尝试将对象作为函数调用时,将调用此方法。
__set_state
static __set_state ( array $properties ) : object
对于由var_export()导出的类,将调用此静态方法。它接收一个参数,该参数是一个包含以array('property'=> value,...)形式导出的属性的数组。
__调试信息
__debugInfo ( void ) : array
当执行var_dump()来转储对象以获取应显示的属性时,将自动调用此方法。如果未定义,则将显示所有公共,受保护和私有属性。
__组
public __set ( string $name , mixed $value ) : void
将数据写入不可访问的(受保护的或私有的)或不存在的属性时,将运行__set()。
__得到
public __get ( string $name ) : mixed
__get()用于从不可访问的(受保护的或私有的)或不存在的属性中读取数据。
__isset
public __isset ( string $name ) : bool
__isset()通过调用isset()
或empty()
访问不可访问(受保护或私有)或不存在的属性来触发。
__未设置
public __unset ( string $name ) : void
当unset()
在无法访问的(受保护的或私有的)或不存在的属性上使用__unset()时,将调用__unset()。
以上是 PHP魔术方法 的全部内容, 来源链接: utcz.com/z/347175.html