方法:__construct()
,__destruct()
。
方法重载:__call()
,__callStatic()
。
属性重载:__get()
,__set()
,__isset()
,__unset()
//这四个只对类中私有受保护的成员属性有效
__toString()
,__autoload()
;
__set_state()
; //自 PHP 5.1.0 起当调用 var_export() 导出类时,此静态 方法会被调用。 本方法的唯一参数是一个数组。
__clone()
; //通常用于对副本进行重新初始化,
说明:this指副本对象引用,that指原对象引用 等方法在 PHP 中被称为”魔术方法”。PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。
常量:
__LINK__
//文件中的当前行号。
__FILE__
//文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
__DIR__
//文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录,它等价于 dirname(__FILE__)
。
__FUNCTION__
//函数名称。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__
//类的名称。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__METHOD__
//类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写
__NAMESPACE__
//当前命名空间的名称(大小写敏感)。这个常量是在编译时定义的(PHP 5.3.0 新增)
__construct(),类的构造函数
通常构造方法被用来执行一些有用的初始化任务
__destruct(),类的析构函数
析构方法允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件、释放结果集等。
__call(),在对象中调用一个不可访问方法时调用
__callStatic(),用静态方式中调用一个不可访问方法时调用
__get(),获得一个类的成员变量时调用
__set(),设置一个类的成员变量时调用
__isset(),当对不可访问属性调用isset()或empty()时调用
__unset(),当对不可访问属性调用unset()时被调用。
__sleep(),执行
serialize()
时,先会调用这个函数__sleep() 方法常用于提交未提交的数据,或类似的清理操作。同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用。
serialize()
函数会检查类中是否存在一个魔术方法__sleep()
。如果存在,则该方法会优先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。
如果该方法未返回任何内容,则 NULL 被序列化,并产生一个 E_NOTICE 级别的错误。
__sleep() 不能返回父类的私有成员的名字。这样做会产生一个 E_NOTICE 级别的错误。
__wakeup(),执行unserialize()时,先会调用这个函数
__wakeup() 经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。
__toString(),类被当成字符串时的回应方法
__invoke(),调用函数的方式调用一个对象时的回应方法
__set_state(),调用var_export()导出类时,此静态方法会被调用。
__clone(),当对象复制完成时调用
__autoload(),尝试加载未定义的类
__debugInfo(),打印所需调试信息