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() | 打印输出调试信息 |