魔术方法:
__construct()
__destruct()
__set()
__get()
__isset()
__unset()
__autoload()
构造方法 __construct() 用于对成员属性初始化
function __construct([参数列表]){
//方法体,通常用来对成员属性进行初始化赋值
}
析构方法 __desctruct() 用于销毁对象
function __destruct(){
//方法体,通常用来完成一些对象销毁
}
__set() 为私有的成员属性设置值
void __set(string name,mixed value)
__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名
__get()在对象的外部获取私有属性的值
mixed __get(string name)
__set( $property, $value ) 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值
__inset() 间接测定对象中的私有属性
bool __isset(string name)
__isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法
__unset() 间接将私有的成员属性删除
void __unset(string name)
__unset( $property ) 当在一个未定义的属性上调用unset()函数时调用此方法
下面是我找的一些:
__autoload() 自动加载类
__autoload()方法可以自动实例化需要使用的类。当程序要用一个类,但该类还没有被实例化时,PHP5将使用__autoload()方法在指定路径下自动查找和该类名称相同的文件。如果找到则继续执行,否则报错。
__clone
PHP5中的对象赋值是使用的引用赋值,如果想复制一个对象则需要使用clone方法,在调用此方法是对象会自动调用__clone魔术方法,如果在对象复制需要执行某些初始化操作,可以在__clone方法实现。
__sleep、__wakeup
__sleep 串行化的时候用
__wakeup 反串行化的时候调用
serialize() 检查类中是否有魔术名称 __sleep 的函数。如果这样,该函数将在任何序列化之前运行。它可以清除对象并应该返回一个包含有该对象中应被序列化的所有变量名的数组。
使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。
相反地,unserialize() 检查具有魔术名称 __wakeup 的函数的存在。如果存在,此函数可以重建对象可能具有的任何资源。
使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。