中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Trait方法怎么在PHP中使用

發布時間:2021-01-16 09:46:50 來源:億速云 閱讀:180 作者:Leah 欄目:開發技術

這篇文章給大家介紹Trait方法怎么在PHP中使用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

PHP中的Trait用法:

Trait方法怎么在PHP中使用

問題

當我第一次使用的時候, 因為之前一直使用抽象類, 或者定義內部對象, 然后調用內部對象中的方法, 所以我當時有了以下幾個問題:

1.能否引入多個, 如果可以的話, 同名方法如何處理

2.引入方法與現有方法重名時, 如何解決

3.能否定義抽象方法, 因為有些方法需要知道使用時的情況, 在抽象類中, 這種情況一般通過調用抽象方法來解決

4.能否定義字段

5.能否將字段或方法定義為靜態

6.能否對方法進行權限控制

答疑

1. Trait 可以引入多個, 多個trait中存在同名方法時, 需要指定使用哪個方法, 如下:

Trait方法怎么在PHP中使用

2.引入方法與現有方法重名時, 會優先調用類中已定義的方法, 其優先級順序為: 當前類方法>trait方法>父類方法

3. trait 中可以定義抽象方法, 語法與抽象類相同

Trait方法怎么在PHP中使用

4.trait 中可以定義字段, 語法與類相同

Trait方法怎么在PHP中使用

5. 可以定義靜態方法與靜態字段

Trait方法怎么在PHP中使用

6. 可以進行方法權限的控制

Trait方法怎么在PHP中使用

7. 另外, 在trait 代碼塊中還可以引入其他trait代碼塊, 語法與類中引入相同:

Trait方法怎么在PHP中使用

總結

至此, 我發現了一個新的問題, 這個 trait 與抽象類有什么區別? 說什么代碼復用, 這不就是多繼承么? trait與抽象類功能上有區別么? 抽象類能干的, trait都能干啊.

思前想后, 我覺得區別還是有的, 雖然說他們兩個看著很像, 功能相似, 但是正如抽象類與接口一樣(雖然這兩者不同, 接口不能定義方法), 接口更側重于定義一組公共的方法, 一種規范, 而抽象類則側重于將子類中公共的方法進行抽離, 提高代碼的復用.

trait 與抽象類的側重點也不相同

trait 側重于定義共用的代碼片段, 它并不管引用此片段的類是干什么的, 只要你需要, 就可以拿走去用, 簡單說就是 trait 并不約束類的類型, 而僅僅定義方法

抽象類則不同, 既然你繼承我, 那你干的事情肯定跟我是一樣的, 不能抽象類是去與數據庫交互的, 你子類去寫腳本了. 所以抽象類相對 trait 更側重于 類型的約束.

關于Trait方法怎么在PHP中使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五指山市| 元朗区| 基隆市| 黑龙江省| 莱芜市| 天峨县| 峨眉山市| 广南县| 平凉市| 军事| 子长县| 察雅县| 武隆县| 淄博市| 临城县| 纳雍县| 定兴县| 汉川市| 盐山县| 靖安县| 沈阳市| 兴国县| 和静县| 石台县| 高碑店市| 横峰县| 贵港市| 罗田县| 股票| 榕江县| 资中县| 唐山市| 海丰县| 扎兰屯市| 宁海县| 定襄县| 嘉黎县| 白山市| 金塔县| 崇明县| 洮南市|