PHP 魔术方法 - 简介
PHP 中,以两个下划线 ( __ ) 开头方法称之为 「 魔术方法 」
这些 「 魔术方法 」 在 PHP 中扮演这重要的角色,作为一名 PHP 开发人员,你必须知道它们,且会用它们
本专栏,我们就来看看和学习这些魔术方法,以及一些简单的使用范例
PHP 魔术方法一览
| 方法名 | 说明 |
|---|---|
| __construct() 类的构造函数 | |
| __destruct() | 类的析构函数 |
| __call($funName, $arguments) | 当调用对象的一个不存在或不可访问的方法时会自动调用 |
| __callStatic($funName, $arguments) | 当调用对象或类的一个不存在或不可访问的静态方法时会自动调用 |
| __get($propertyName) | 当访问对象的一个不存在的成员时会自动调用 |
| __set($property, $value) | 当给对象的一个不存在的成员赋值时会自动调用 |
| __isset($content) | 当使用 isset() 或 empty() 判断对象一个不存在或不可访问的属性时自动调用 |
| __unset($content) | 当使用 reset() 重制一个对象不存在的或不可访问的属性时会自动调用 |
| __sleep() | 当使用 serialize() 函数序列化一个对象时调用 |
| __wakeup() | 当使用 deserialization() 函数反序列化一个对象时调用 |
| __toString() | 将一个对象转换为字符串 把一个对象作为 echo 语句或 print() 函数的参数时会自动调用 |
| __invoke() | 将一个对象作为可调用对象 ( callable object ) 当把一个对象当作方法来调用时会自动调用该方法. |
| __set_state($an_array) | 当使用 var_export() 将数组导出为变量时会自动调用 |
| __clone() | 当某个对象被复制时会自动调用 |
| __autoload($className) | 尝试自动加载一个为定义的类 |
| __debugInfo() | 打印输出调试信息 |