#### 1. 什么是魔术方法 ? --- [PHP 魔术方法 官方文档 传送门](https://www.php.net/manual/zh/language.oop5.magic.php#object) PHP 的魔术方法是指 PHP 中以两个下划线 `_` 开头的类方法 我们自己在定义类方法时不能使用魔术方法的名称,除非是想使用其魔术功能 #### 2. PHP 魔术方法 --- | 序号 | 方法名 | 描述 | | ------------ | ------------ | ------------ | | 1 | __construct | 构造方法,类被实例化时执行 | | 2 | __destruct | 析构方法,对象被销毁时执行 | | 3 | __call | 当对象调用一个不可访问的方式时执行 | | 4 | __callStatic | 以静态方式调用一个不可访问的方式时执行 | | 5 | __get | 读取不可访问或不存在的属性时执行 | | 6 | __set | 给不可访问或不存在的属性赋值时执行 | | 7 | __isset | 当对不可访问或不存在的属性调用 isset() 或 empty() 时执行 | | 8 | __unset | 当对不可访问或不存在的属性调用 unset() 时执行 | | 9 | __sleep | 当对象使用 serialize() 序列化时,会先调用该方法 | | 10 | __wakeup | 当对象使用 unserialize() 反序列化时,会先调用该方法 | | 11 | __serialize() | | | 12 | __unserialize() | | | 13 | __toString() | 当对象转为字符串类型时执行 | | 14 | __invoke() | 当对象被当作函数调用时执行 | | 15 | __set_state() | | | 16 | __clone() | 当使用 clone 关键字 克隆对象完成后执行 | | 17 | __debugInfo() | |