成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 代碼復(fù)用的方式

chemzqm / 690人閱讀

摘要:什么是自起,實(shí)現(xiàn)了一種代碼復(fù)用的方法,稱為。是為了單繼承語言而準(zhǔn)備的一種代碼復(fù)用機(jī)制。從基類繼承的成員會被插入的成員所覆蓋。中使用先將其重新命名,然后將新命名方法設(shè)置為私有,原中的方法可以正常訪問。就是很好用的啦轉(zhuǎn)載地址代碼復(fù)用的方式

什么是 Trait?

自 PHP 5.4.0 起,PHP 實(shí)現(xiàn)了一種代碼復(fù)用的方法,稱為 Trait。

Trait 是為了單繼承語言而準(zhǔn)備的一種代碼復(fù)用機(jī)制。

Trait 和 Class 相似,它為傳統(tǒng)的繼承增加了水平的特性的組合,多個無關(guān)的 Class 之間不需要互相繼承

Trait 使得無關(guān)的 Class 可以使用相同的屬性和方法。

簡單使用
echoHello();
echo $one->index();
echo $two->echoHello();

結(jié)果輸出 Hello Trait index Hello Trait。

從基類繼承的成員會被 Trait 插入的成員所覆蓋。優(yōu)先順序是來自當(dāng)前類的成員覆蓋了 Trait 的方法,而 Trait 則覆蓋了被繼承的方法。
echoHello();

echo $two->echoHello();

echo $base->echoHello();

結(jié)果輸出 Hello One Hello Trait Hello Base。

class one 示例覆蓋基類和 Trait Test,說明當(dāng)前類的方法優(yōu)先級高于他們。

class Two 示例覆蓋基類,Trait 的有優(yōu)先級高于繼承的基類。

class Base 示例覆蓋 Trait Test,說明當(dāng)前類的方法優(yōu)先級高于 Trait。

通過逗號分隔,在 use 聲明列出多個 trait,可以都插入到一個類中。
echoHello();
echo $one->echoWord();

結(jié)果輸出 Hello word !。

如果兩個 Trait 都插入了一個同名的方法,如果沒有明確解決沖突將會產(chǎn)生一個致命錯誤。
echoTest();
echo $one->echoWord();
echo $one->echoHello();

輸出結(jié)果:Hello Test word Test Hello TestTwo

使用 as 作為別名,即 Test::echoHello as echoTest; 輸出 Trait Test 中的 echoHello.

使用 insteadof 操作符用來排除掉其他 Trait,即 Test::echoWord insteadof TestTwo; 輸出的是 word Test,使用 Trait Test 中的 echoWord

修改 方法的控制權(quán)限
echoHello();

輸出結(jié)果 Hello

class one 中使用 asechoHello 設(shè)為私有,則通過 class one 不能訪問 echoHello。

class two 中使用 as 先將其重新命名,然后將新命名方法設(shè)置為私有,原 Trait 中的方法可以正常訪問。

Trait 中還可以像類一樣定義屬性。就是很好用的啦!

轉(zhuǎn)載地址 PHP 代碼復(fù)用的方式

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26095.html

相關(guān)文章

  • 簡述我所理解 PHP Trait

    摘要:和組合的語義定義了一種減少復(fù)雜性的方式,避免傳統(tǒng)多繼承和類相關(guān)典型問題。隊列的目的是將耗時的任務(wù)延時處理,比如發(fā)送郵件,從而大幅度縮短請求和相應(yīng)的時間。同樣的道理,根據(jù)引入不同的來完成對應(yīng)的功能。 showImg(https://segmentfault.com/img/remote/1460000010868178); Trait 概念 在常規(guī)的 PHP 開發(fā)中,我們都習(xí)慣于先編寫一...

    gecko23 評論0 收藏0
  • php 代碼復(fù)用機(jī)制--traits

    摘要:是一種為類似的單繼承語言而準(zhǔn)備的代碼復(fù)用機(jī)制。因為中的變量環(huán)境是基于函數(shù)的,所以會輸出博客鏈接代碼復(fù)用機(jī)制,本文后續(xù)如有更新將會在博客更新。 提到 php 的代碼復(fù)用,我們可能第一時間會想到繼承,但是這種單繼承語言一旦派生的子類過多,那么會產(chǎn)生一系列的問題,比如依賴父類、耦合性太大、破壞了類的封裝性。那么有沒有更好的方法來實(shí)現(xiàn)代碼復(fù)用呢? 自 PHP 5.4.0 起,PHP 實(shí)現(xiàn)了另外...

    yedf 評論0 收藏0
  • 關(guān)于PHPTrait特性

    摘要:關(guān)于作者程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事和前端開發(fā),使用和,端使用混合式開發(fā)。和組合的語義定義了一種減少復(fù)雜性的方式,避免傳統(tǒng)多繼承和類相關(guān)典型問題。它為傳統(tǒng)繼承增加了水平特性的組合也就是說,應(yīng)用的幾個之間不需要繼承。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和...

    wind3110991 評論0 收藏0
  • PHP異步編程,異步本質(zhì)

    摘要:實(shí)現(xiàn)異步的方式有哪些提供了一些異步方法那它們底層是用哪種方式實(shí)現(xiàn)的呢實(shí)現(xiàn)異步的方式有線程方式進(jìn)程方式復(fù)用線程方式和進(jìn)程方式類似有異步請求時開一個線程或者進(jìn)程獲取到數(shù)據(jù)后線程間可以直接共享數(shù)據(jù)進(jìn)程間可以通過進(jìn)程通信機(jī)制,如共享內(nèi)存管道等方式進(jìn) 實(shí)現(xiàn)異步的方式有哪些? swoole提供了一些異步方法, 那它們底層是用哪種方式實(shí)現(xiàn)的呢? 實(shí)現(xiàn)異步的方式有: 線程方式 進(jìn)程方式 IO復(fù)用 ...

    lushan 評論0 收藏0

發(fā)表評論

0條評論

chemzqm

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<