php 面向?qū)ο?/h2>

訪問控制

public 可在外部調(diào)用
protected 只能在類的內(nèi)部 或者子類中調(diào)用
prrivate 只能在自身內(nèi)調(diào)用

子類繼續(xù)父類中的方法,public 和protected方法。如果子類要重寫父類中的方法,則需保持父類訪問控制權(quán)限,或者更加開放。

父類為public  則子類只能為public
父類為protected 則子類可以為protected public
父類為private 則子類可為 private protected public

如果有魔術(shù)方法不想被觸發(fā),可以使用protect 或者是private 可以實(shí)現(xiàn)魔術(shù)方法的觸發(fā)。
如 禁止一個(gè)類被實(shí)例化

class A{
    protected function __construct()
    {
   }
}
//此時(shí),則會報(bào)錯(cuò)。
$a = new A;

魔術(shù)方法

構(gòu)造函數(shù)和析構(gòu)函數(shù)

__construct 在實(shí)例化一個(gè)類時(shí)觸發(fā)
__destruct 在對象被銷毀時(shí)觸發(fā)

重載

當(dāng)調(diào)用當(dāng)前環(huán)境下未定義或不可見的類屬性或方法,會調(diào)用的魔術(shù)方法

屬性重載

在給不可訪問屬性賦值時(shí) __set
讀取不可訪問屬性的值時(shí) __get
當(dāng)對不可訪問屬性調(diào)用isset() 或者empty() __isset
當(dāng)對不可訪問屬性調(diào)用unset() __unset

方法重載

在對象中調(diào)用一個(gè)不可訪問方法時(shí) __call
在靜態(tài)上下文中調(diào)用一個(gè)不可訪問方法時(shí) __callStatic

其他

在類被序列化時(shí) __sleep
在類被反序列化 __wakeup
一個(gè)類被當(dāng)成字符串 __toString
當(dāng)嘗試以調(diào)用函數(shù)的方式調(diào)用一個(gè)對象時(shí) __invoke
調(diào)用var_export()導(dǎo)出類時(shí),__set_state

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容