__construct()– 在创建对象时调用,用于初始化对象的属性和方法。
__destruct() – 在对象销毁时调用,用于释放资源和清理操作。
__call(args) – 在调用一个不存在的方法时触发。
__callStatic(args) – 在调用一个不存在的静态方法时触发。
__get($name) – 在访问一个不存在的属性时触发。
__set(value) – 在给一个不存在的属性赋值时触发。给私有属性,受保护属性赋值也能触发。
__isset($name) – 在判断一个不存在的属性是否存在时触发。
__unset($name) – 在销毁一个不存在的属性时触发。
__sleep() – 在序列化一个对象时触发。
__wakeup() – 在反序列化一个对象时触发。
__toString() – 在将对象转换为字符串时触发。echo,print,die,preg_match,strtolower等函数操作对象时触发,还有弱比较 == 也能触发。
__invoke($args) – 在将对象作为函数调用时触发。
__set_state($properties) – 在使用var_export()导出类时触发。
__clone() – 在将对象复制时触发。
__debugInfo() – 在使用var_dump()函数打印对象时触发。
PHP 全部魔术方法及其触发条件
于 2023-12-05 15:27:22 首次发布