PHP 中把以兩個下劃線__開頭的方法稱為魔術(shù)方法 (Magic methods)峦椰,這些方法在 PHP 中充當(dāng)了舉足輕重的作用芋忿。 魔術(shù)方法包括:
// 類的構(gòu)造函數(shù)
__construct()
// 類的析構(gòu)函數(shù)
__destruct()
// 在對象中調(diào)用一個不可訪問方法時調(diào)用
__call()
// 用靜態(tài)方式中調(diào)用一個不可訪問方法時調(diào)用
__callStatic()
// 獲得一個類的成員變量時調(diào)用
__get()
// 設(shè)置一個類的成員變量時調(diào)用
__set()
// 當(dāng)對不可訪問屬性調(diào)用isset()或empty()時調(diào)用
__isset()
// 當(dāng)對不可訪問屬性調(diào)用unset()時被調(diào)用氛赐。
__unset()
// 執(zhí)行serialize()時漠吻,先會調(diào)用這個函數(shù)
__sleep()
// 執(zhí)行unserialize()時擅耽,先會調(diào)用這個函數(shù)
__wakeup()
// 類被當(dāng)成字符串時的回應(yīng)方法
__toString()
// 調(diào)用函數(shù)的方式調(diào)用一個對象時的回應(yīng)方法
__invoke()
// 調(diào)用var_export()導(dǎo)出類時,此靜態(tài)方法會被調(diào)用速蕊。
__set_state()
// 當(dāng)對象復(fù)制完成時調(diào)用
__clone()
// 嘗試加載未定義的類
__autoload()
// 打印所需調(diào)試信息
__debugInfo()