《PHP的類和對(duì)象(七)Trait》要點(diǎn):
本文介紹了PHP的類和對(duì)象(七)Trait,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
自 PHP 5.4.0 起,PHP 實(shí)現(xiàn)了一種代碼復(fù)用的辦法,稱為 Trait.
因?yàn)镻HP是單繼承,當(dāng)你必要多個(gè)區(qū)別的特性,就不得不去組合多個(gè)基類,Trait出現(xiàn)后就避免了這些問(wèn)題,Trait的優(yōu)勢(shì)就是可以隨意組合,而且代碼清晰.
Trait不僅僅是可復(fù)用代碼段的聚攏,應(yīng)該是一組描述了某個(gè)特性的
屬性與辦法的集合.優(yōu)點(diǎn)再于隨意組合,耦合性低,可讀性高.
優(yōu)先順序是當(dāng)前類的辦法覆蓋了 trait 的辦法,而Trait 則覆蓋了被繼承的辦法.
通過(guò)逗號(hào)分隔,在 use 聲明列出多個(gè) trait,可以都插入到一個(gè)類中.
如果引入的兩個(gè)Trait有同名的辦法,會(huì)產(chǎn)生沖突,可以使用insteadof操作符來(lái)指定使用沖突辦法的哪一個(gè),也可以使用as將沖突辦法起一個(gè)別名.
使用 as 語(yǔ)法還可以用來(lái)調(diào)整方法的拜訪控制.但是不會(huì)改變?cè)娣椒ǖ陌菰L控制.
Trait也可以使用Trait,同時(shí)也像類一樣可以定義抽象辦法,屬性,靜態(tài)屬性,靜態(tài)辦法.不過(guò)如果Trait定義了一個(gè)屬性,使用Trait的類中就不能定義同名的屬性,也不能修改這個(gè)屬性.
其實(shí)Trait更像是辦法的集合,其內(nèi)的屬性更像是為了其中的辦法服務(wù)的.
Traits不是類,不克不及被實(shí)例化.
Trait也相似于include和require導(dǎo)入文件.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP的類和對(duì)象(七)Trait》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/14272.html