PHP 预定义变量、魔术常量和魔术方法功能与用法(2)

__set(),当给不可访问的属性赋值时,__set() 会被调用

__isset(),当对不可访问属性调用 isset() 或 empty() 是,__isset() 会被调用

__unset(),当对不可访问属性调用 unset() 时,__unset() 会被调用

__sleep(),serialize() 函数会检查类中是否存在魔术方法 __sleep(),如果存在,会先调用 __sleep(),然后才执行序列化操作。这样就允许对象在被序列化之前做任何清除操作。

__wakeup(),当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

__toString(),当一个对象被当作字符串输出时,会调用 __toString() 输出的内容,例如 echo $obj;

__invoke(),当以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用,本特性只在 PHP 5.3.0 及以上版本有效。

__set_state(),当调用 var_export() 导出对象时,此方法会被调用

__clone(),对象复制,当使用 clone 关键字复制对象时,会调用 __clone(),__clone() 不能被直接调用,使用 clone 复制的对象为浅复制,所以引用属性仍然会是一个指向原来的变量的引用。

__debugInfo(),当调用 var_dump() 导出对象时,此方法会被调用

__autoload($class_name),加载未定义的类 

官方文档:

https://www.php.net/manual/zh/reserved.variables.php

https://www.php.net/manual/zh/language.constants.predefined.php

https://www.php.net/manual/zh/language.oop5.magic.php

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1775.html