php 魔术常量与魔术方法复习
最近研究 js 与前端方面的东西比较多,倒是把 php 的一些东西都忘了,现在回归根本再来复习一下.
魔术常量
__LINE__ | 文件中的当前行号。 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 |
__FUNCTION__ | 函数名称 |
__CLASS__ | 类的名称 |
__TRAIT__ | Trait 的名字 |
__METHOD__ | 类的方法名 |
__NAMESPACE__ | 当前命名空间的名称 |
类的魔术方法
__construct | 构造方法(当类被实例化时会执行) |
__destruct | 析构方法(当类被销毁时自动调用) |
__set | 当设置对象的一个不可见属性时,自动调用 |
__get | 当读取对象的一个不可见属性时,自动调用并返回值 |
__isset | 当用 isset,或 empty 判断一个不可见属性时,自动调用 |
__unset | 当使用 unset 一个不可见属性时,自动调用 |
__call | 当调用一个不可访问的方法时,__call 会自动调用 |
__clone | 当复制完成时,如果有 __clone 方法,则新创建的对象中 __clone 方法会被调用 |
__toString | __toString 方法用于一个类被当成字符串时应怎样回应 |
__invoke | 当尝试以调用函数的方式调用一个对象的时候,自动调用 |
__debugInfo | 当存在 __debugInfo 方法时,var_dump 这个对象的时候,不会打印其他属性与方法 |
__sleep | 当使用 serialize()方法序列化一个对象时,会检测该类是否有 __sleep 方法, 如果有,该方法会先被调用,之后再进行序列化 |
__wakeup | 当使用 unserialize()反序列化一个对象时,会检测该类是否有 __wakeup 方法, 如果有,该方法会先被调用,预先准备对象需要的资源,例如重建数据库链接,或执行其他初始化操作 |
__set_state | 当调用 var_export() 导出类时,此静态 方法会被调用 |