php中的魔术变量和魔术方法 - SegmentFault-Erics/learnPHP GitHub Wiki
魔术常量
php中的魔术常量是指php预先定义的一些系统常量,下面就列出php的八大魔术常量、含义及支持版本。
序号 | 魔术常量 | 含义 | 支持版本 |
---|---|---|---|
1 | _FILE_ | 文件目录+文件名 | |
2 | _LINE_ | 当前行值 | |
3 | _CLASS_ | 当前类名 | 4.3.0+ |
4 | _FUNCTION_ | 当前方法 | 4.3.0+ |
5 | _METHOD_ | 当前类::当前方法 | 5.0.0+ |
6 | _DIR_ | 文件目录 | 5.3.0+ |
7 | _NAMESPACE_ | 当前命名空间 | 5.3.0+ |
8 | _TRAIT_ | 当前trait名 | 5.4.0+ |
魔术方法
php的魔术方法可以理解为php的内置全局方法,下面就列出php的魔术方法及作用
序号 | 魔术方法 | 作用 |
---|---|---|
1 | __sleep() | 在对象被序列化操作(serialize())之前对对象内的属性进行操作,需要返回一个数组 |
2 | __wakeup() | 类似__sleep(),在反序列化操作(unserialize())之前被执行,不需要返回数组 |
3 | __toString() | 处理不支持对象打印的函数直接打印对象,如echo()、print()、printf("%s") |
4 | __invoke() | 当对象以函数的形式调用,会自动加载该类中的__invoke()方法 |
5 | __set_state() | 当调用var_export()方法时,自动调用该方法,以数组形式传入,返回该类对象 |
6 | __debugInfo() | 当调用var_dump()方法时,自动调用该方法,且返回必须为数组格式 |
7 | __construct() | 构造函数:当创建类对象时,先调用该方法,一般用于初始化操作当中 |
8 | __destruct() | 析构函数:当对象呗销毁(或者注销)时,该方法被调用,如$obj = NULL; |
9 | __call($string, $array) | 调用类对象的不可用方法时,该方法被调用,两个必带参数,第一个为方法名,第二个为方法参数数组 |
10 | __callStatic($string, $array) | 同__call()方法,调用类的不可用静态方法时,该方法被调用 |
11 | __get($name) | 获取对象属性不可用时,该方法被调用,一个必带参数 |
12 | __set($name, $value) | 对不可访问的属性赋值时,该方法被调用,两个必带参数 |
13 | __isset($name) | 对不可访问的属性做isset()、empty()判断时,该方法被调用,一个必带参数 |
14 | __unset($name) | 对不可访问的属性做unset()设置时,该方法被调用,一个必带参数 |
15 | __clone() | 当使用clone复制对象时,该方法被调用,可以用来修改复制对象的属性 |