#### 1. 什么是魔術(shù)方法 ? --- [PHP 魔術(shù)方法 官方文檔 傳送門](https://www.php.net/manual/zh/language.oop5.magic.php#object) PHP 的魔術(shù)方法是指 PHP 中以兩個下劃線 `_` 開頭的類方法 我們自己在定義類方法時不能使用魔術(shù)方法的名稱,除非是想使用其魔術(shù)功能 #### 2. PHP 魔術(shù)方法 --- | 序號 | 方法名 | 描述 | | ------------ | ------------ | ------------ | | 1 | __construct | 構(gòu)造方法,類被實(shí)例化時執(zhí)行 | | 2 | __destruct | 析構(gòu)方法,對象被銷毀時執(zhí)行 | | 3 | __call | 當(dāng)對象調(diào)用一個不可訪問的方式時執(zhí)行 | | 4 | __callStatic | 以靜態(tài)方式調(diào)用一個不可訪問的方式時執(zhí)行 | | 5 | __get | 讀取不可訪問或不存在的屬性時執(zhí)行 | | 6 | __set | 給不可訪問或不存在的屬性賦值時執(zhí)行 | | 7 | __isset | 當(dāng)對不可訪問或不存在的屬性調(diào)用 isset() 或 empty() 時執(zhí)行 | | 8 | __unset | 當(dāng)對不可訪問或不存在的屬性調(diào)用 unset() 時執(zhí)行 | | 9 | __sleep | 當(dāng)對象使用 serialize() 序列化時,會先調(diào)用該方法 | | 10 | __wakeup | 當(dāng)對象使用 unserialize() 反序列化時,會先調(diào)用該方法 | | 11 | __serialize() | | | 12 | __unserialize() | | | 13 | __toString() | 當(dāng)對象轉(zhuǎn)為字符串類型時執(zhí)行 | | 14 | __invoke() | 當(dāng)對象被當(dāng)作函數(shù)調(diào)用時執(zhí)行 | | 15 | __set_state() | | | 16 | __clone() | 當(dāng)使用 clone 關(guān)鍵字 克隆對象完成后執(zhí)行 | | 17 | __debugInfo() | |