版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——PHP中trait使用方法介紹PHP中trait使用方法介紹
PHP中使用trait關(guān)鍵字是為了解決一個(gè)類既想集成基類的屬性和方法,又想擁有別的基類的.方法,而trait一般處境下是和use搭配使用的。本文是我探尋整理的關(guān)于PHP中trait使用方法介紹,感興趣的摯友一起學(xué)習(xí)吧!!想了解更多相關(guān)信息請持續(xù)關(guān)注我們我!
?php
traitDrive
public$carName=trait;
publicfunctiondriving
echodriving$this-carName\n;
classPerson
publicfunctioneat
echoeat\n;
classStudentextendsPerson
useDrive;
publicfunctionstudy
echostudy\n;
$student=newStudent;
$student-study;
$student-eat;
$student-driving;
?
輸出結(jié)果如下:
study
eat
drivingtrait
上面的例子中,Student類通過繼承Person,有了eat方法,通過組合Drive,有了driving方法和屬性carName。
假設(shè)Trait、基類和本類中都存在某個(gè)同名的屬性或者方法,最終會留存哪一個(gè)呢?
?php
traitDrive
publicfunctionhello
echohellodrive\n;
publicfunctiondriving
echodrivingfromdrive\n;
classPerson
publicfunctionhello
echohelloperson\n;
publicfunctiondriving
echodrivingfromperson\n;
classStudentextendsPerson
useDrive;
publicfunctionhello
echohellostudent\n;
$student=newStudent;
$student-hello;
$student-driving;
?
輸出結(jié)果如下:
hellostudent
drivingfromdrive
因此得出結(jié)論:當(dāng)方法或?qū)傩酝麜r(shí),當(dāng)前類中的方法會籠罩trait的方法,而trait的方法又籠罩了基類中的方法。
假設(shè)要組合多個(gè)Trait,通過逗號分隔Trait名稱:
useTrait1,Trait2;
假設(shè)多個(gè)Trait中包含同名方法或者屬性時(shí),會怎樣呢?答案是當(dāng)組合的多個(gè)Trait包含同名屬性或者方法時(shí),需要明確聲明解決沖突,否那么會產(chǎn)生一個(gè)致命錯(cuò)誤。
?php
traitTrait1
publicfunctionhello
echoTrait1::hello\n;
publicfunctionhi
echoTrait1::hi\n;
traitTrait2
publicfunctionhello
echoTrait2::hello\n;
publicfunctionhi
echoTrait2::hi\n;
classClass1
useTrait1,Trait2;
?
輸出結(jié)果如下:
代碼如下:
PHPFatalerror:Traitmethodhellohasnotbeenapplied,becausetherearecollisionswithothertraitmethodsonClass1in~/php54/trait_3.phponline20
使用insteadof和as操作符來解決沖突,insteadof是使用某個(gè)方法替代另一個(gè),而as是給方法取一個(gè)別名,概括用法請看代碼:
?php
traitTrait1
publicfunctionhello
echoTrait1::hello\n;
publicfunctionhi
echoTrait1::hi\n;
traitTrait2
publicfunctionhello
echoTrait2::hello\n;
publicfunctionhi
echoTrait2::hi\n;
classClass1
useTrait1,Trait2
Trait2::helloinsteadofTrait1;
Trait1::hiinsteadofTrait2;
classClass2
useTrait1,Trait2
Trait2::helloinsteadofTrait1;
Trait1::hiinsteadofTrait2;
Trait2::hiashei;
Trait1::helloashehe;
$Obj1=newClass1;
$Obj1-hello;
$Obj1-hi;
echo\n;
$Obj2=newClass2;
$Obj2-hello;
$Obj2-hi;
$Obj2-hei;
$Obj2-hehe;
?
輸出結(jié)果如下:
Trait2::hello
Trait1::hi
Trait2::hello
Trait1::hi
Trait2::hi
Trait1::hello
as關(guān)鍵詞還有另外一個(gè)用途,那就是修改方法的訪問操縱:
Trait也能組合Trait,Trait中支持抽象方法、靜態(tài)屬性及靜態(tài)方法,測試代碼如下:
?php
traitHello
publicfunctionsayHello
echoHello\n;
traitWorld
useHello;
publicfunctionsayWorld
echoWorld\n;
abstractpublicfunctiongetWorld;
publicfunctioninc
static$c=0;
$c=$c+1;
echo$c\n;
publicstaticfunctiondoSomething
echoDoingsomething\n;
classHelloWorld
useWorld;
publicfunctiongetWorld
returngetWorld;
$Obj=newHelloWorld;
$Obj-sayHello;
$Obj-sayWorld;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同管理培訓(xùn)合同:上海項(xiàng)目實(shí)踐與招投標(biāo)(2025版)
- 二零二五年度智慧城市建設(shè)名義合伙人合同3篇
- 2025年度農(nóng)民工勞動合同電子化管理方案及實(shí)施細(xì)則3篇
- 二零二五年度農(nóng)業(yè)產(chǎn)業(yè)鏈金融服務(wù)創(chuàng)新合同-@-1
- 2025版企業(yè)內(nèi)部設(shè)備維修承包合同規(guī)范文本4篇
- 2025年度排洪渠項(xiàng)目監(jiān)理合同模板3篇
- 二零二五年度人工智能核心算法軟件知識產(chǎn)權(quán)獨(dú)家轉(zhuǎn)讓合同3篇
- 二零二五年度全新品牌專賣店開設(shè)服務(wù)合同范本4篇
- 2025年度票據(jù)代理業(yè)務(wù)委托合同范本6篇
- 2025年度苗圃技術(shù)員崗位聘用合同修訂版
- 《風(fēng)電場項(xiàng)目經(jīng)濟(jì)評價(jià)規(guī)范》(NB-T 31085-2016)
- 拔罐技術(shù)操作考核評分標(biāo)準(zhǔn)
- 戒賭法律協(xié)議書范本
- 競選市級三好學(xué)生PPT
- 2024屆甘肅省蘭州市五十一中生物高一上期末檢測模擬試題含解析
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)上圖入庫(技術(shù)培訓(xùn))
- 火災(zāi)隱患整改登記表
- 普通地質(zhì)學(xué)教材
- 天津華寧KTC101說明書
- 【智慧校園】-智慧校園系統(tǒng)方案
- 外研版高中新教材英語單詞表(必修一)
評論
0/150
提交評論