方法:__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 新增)

  1. __construct(),类的构造函数

    通常构造方法被用来执行一些有用的初始化任务

  2. __destruct(),类的析构函数

    析构方法允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件、释放结果集等。

  3. __call(),在对象中调用一个不可访问方法时调用

  4. __callStatic(),用静态方式中调用一个不可访问方法时调用

  5. __get(),获得一个类的成员变量时调用

  6. __set(),设置一个类的成员变量时调用

  7. __isset(),当对不可访问属性调用isset()或empty()时调用

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

  9. __sleep(),执行serialize()时,先会调用这个函数

    __sleep() 方法常用于提交未提交的数据,或类似的清理操作。同时,如果有一些很大的对象,但不需要全部保存,这个功能就很好用。

    serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在,则该方法会优先被调用,然后才执行序列化操作。

    此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。

    如果该方法未返回任何内容,则 NULL 被序列化,并产生一个 E_NOTICE 级别的错误。

    __sleep() 不能返回父类的私有成员的名字。这样做会产生一个 E_NOTICE 级别的错误。

  10. __wakeup(),执行unserialize()时,先会调用这个函数

    __wakeup() 经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作。

  11. __toString(),类被当成字符串时的回应方法

  12. __invoke(),调用函数的方式调用一个对象时的回应方法

  13. __set_state(),调用var_export()导出类时,此静态方法会被调用。

  14. __clone(),当对象复制完成时调用

  15. __autoload(),尝试加载未定义的类

  16. __debugInfo(),打印所需调试信息