所谓魔术函数,是指不同时刻为了完成特定的功能,而自动调用的方法。
__sleep 在serialize()序列化对象之前会调用这个函数
__wakeup 在unserialize()解序列化之前调用这个函数
__toString 当将对象转化为字串的时候调用这个函数
__construct 构造函数,实例化一个对象的时候调用
__destruct 析构函数,当对象实力被释放的时候调用
__call 当调用类中没有的方法时会调用此函数
__get 当访问一个类中没有的属性时调用
__set 当设置一个类中没有的属性的值时调用
__isset 调用外部的isset函数检查类是否有某个属性时调用
__unset 删除类的某个属性时调用
__set_state 使用var_export导出对象的属性和值时调用
__clone 复制某个类的实例时调用
__autoload 当使用一个类而这个类还未被加载时会被自定调用
魔术变量:魔术变量的值常常岁代码所在的位置而改变,例如__line__的值,随着所在的行改变值。注意:区分大小写。
8个常用的魔术变量有:
1、__line__返回当前位置所在的行。
2、__file__返回文件的完整路径和文件名;如果用在被包含文件中,则返回被包含的文件路径和文件名。
3、__dir__返回文件所在的目录。如果用在被包含的文件中,则返回被包含的文件目录。
4、__function__返回定义函数的方法名。
5、__method__返回类的函数方法名。(当函数位于类外时,45返回的值一样;当函数位于类里面时,5比4多了:类名::)
6、__class__返回定义类的类名。
7、__namespace__返回当前的命名空间。
8、__trait__(意思是一种代码复用的方法)类似于class.