魔术常量
常量名 | 参数 |
---|---|
__CLASS__ | 当前所在类的名称 |
__LINE__ | 当前行号 |
__FILE__ | 文件完整路径和文件名 |
__DIR__ | 文件所在目录 |
__FUNCTION__ | 返回该函数被定义时的名字 |
__METHOD__ | 代表成员方法名 |
__NAMESPACE__ | 命名空间名称(5.3 新增) |
__TRAIT__ | Trait 的名字(5.4 新增) |
魔术方法
方法名 | 参数 | 触发条件 | 作用 |
---|---|---|---|
__construct() | 可选参数 | 对象被实例化时自动调用 | 给属性赋初值或者打开资源 |
__destruct() | 无法传参 | 对象被销毁之前自动触发 | 关闭资源 |
__get() | 一个参数 | 在外部使用非公有属性时自动触发 | 在对象外部访问非公有属性 |
__set() | 两个参数 | 在对象外部设置非公有属性时自动触发 | 在对象外部设置封装属性 |
__isset() | 一个参数 | 在对象外部检测封装属性是否存在 | |
__unset() | 一个参数 | 用unset销毁一个非公有属性时触发 | |
__clone() | 在对象被克隆时自动触发,封装它可以导致该对象不能被克隆,使对象可以实现引用赋值的机制 | ||
__toString() | 用echo或print输出对象时自动触发 | ||
__invoke() | 把对象当作函数调用时自动触发 | ||
__call() | 两个参数(方法名,值) | 当对象调用不存在的的方法时触发 | 用来作友好提示 |
__callStatic() | 同上 | ||
__autoload() | 自动加载类,实例化一个不存在的类时,自动调用对象名传入自动加载类放入文件名中匹配去加载该类 | 用于判断是否存在需要加载的类 | |
__sleep() | 对象被串行化时自动调用 | ||
__wakeup() | 当对象被反串行化时自动调用 | ||
__set_state() | 用var_export()输出对象时自动调用 |