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