亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP中Trait的特性以及用法介紹(附代碼)

2020-03-24 18:56:31
字體:
來源:轉載
供稿:網友
這篇文章給大家介紹的內容是關于PHP中Trait的特性以及用法介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

自 PHP5.4.0 起,PHP 實現了代碼復用的一個方法,稱為 traits。
Traits 是一種為類似 PHP 的單繼承語言而準備的代碼復用機制。Trait 為了減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類中復用方法集。Traits 和類組合的語義是定義了一種方式來減少復雜性,避免傳統多繼承和混入類(Mixin)相關的典型問題。
Trait 和一個類相似,但僅僅旨在用細粒度和一致的方式來組合功能。Trait 不能通過它自身來實例化。它為傳統繼承增加了水平特性的組合;也就是說,應用類的成員不需要繼承。
Trait是在PHP5.4中加入的,它既不是接口也不是類。主要是為了解決單繼承語言的限制。是PHP多重繼承的一種解決方案。例如,需要同時繼承兩個 Abstract Class, 這將會是件很麻煩的事情,Trait 就是為了解決這個問題。它能被加入到一個或多個已經存在的類中。它聲明了類能做什么(表明了其接口特性),同時也包含了具體實現(表明了其類特性)
簡單使用
首先,當然是聲明個 Trait,PHP5.4 增加了 trait 關鍵字

trait first_trait {function first_method() { /* Code Here */ }function second_method() { /* Code Here */ }}

同時,如果要在 Class 中使用該 Trait,那么使用 use 關鍵字

html' target='_blank'>class first_class {// 注意這行,聲明使用 first_traituse first_trait;$obj = new first_class();// Executing the method from trait$obj- first_method(); // valid$obj- second_method(); // valid

使用多個 Trait
在同個 Class 中可以使用多個 Trait

trait first_traitfunction first_method() { echo method }trait second_trait {function second_method() { echo method }class first_class {// now using more than one traituse first_trait, second_trait;$obj= new first_class();// Valid$obj- first_method(); // Print : method// Valid$obj- second_method(); // Print : methodTrait 之間的嵌套同時,Trait 之間也可以相互的嵌套,例如trait first_trait {function first_method() { echo method }trait second_trait {use first_trait;function second_method() { echo method }class first_class {// now using use second_trait;$obj= new first_class();// Valid$obj- first_method(); // Print : method// Valid$obj- second_method(); // Print : method

Trait 的抽象方法(Abstract Method)
我們可以在 Trait 中聲明需要實現的抽象方法,這樣能使使用它的 Class 必須實現它

trait first_trait {function first_method() { echo method }// 這里可以加入修飾符,說明調用類必須實現它abstract public function second_method();class first_method {use first_trait;function second_method() {/* Code Here */}

Trait 沖突
多個 Trait 之間同時使用難免會沖突,這需要我們去解決。PHP5.4 從語法方面帶入了相關 的關鍵字語法:insteadof 以及 as ,用法參見

trait first_trait {function first_function() { echo From First Trait trait second_trait {// 這里的名稱和 first_trait 一樣,會有沖突function first_function() { echo From Second Trait class first_class {use first_trait, second_trait {// 在這里聲明使用 first_trait 的 first_function 替換// second_trait 中聲明的first_trait::first_function insteadof second_trait;$obj = new first_class();// Output: From First Trait$obj- first_function();

上面就是些 Trait 比較基本的使用了,更詳細的可以參考官方手冊。這里總結下注意的幾 點:
Trait 會覆蓋調用類繼承的父類方法
Trait 無法如 Class 一樣使用 new 實例化
單個 Trait 可由多個 Trait 組成
在單個 Class 中,可以使用多個 Trait
Trait 支持修飾詞(modifiers),例如 final、static、abstract
我們能使用 insteadof 以及 as 操作符解決 Trait 之間的沖突

相關文章推薦:

php實現操作文件的各種方式總結(附代碼)

php如何實現原生zip的測試(純代碼)

以上就是PHP中Trait的特性以及用法介紹(附代碼)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色悠悠久久88| 日韩高清电影免费观看完整版| 日韩欧美精品网址| 亚洲白虎美女被爆操| 久久久久久久一| 亚洲a级在线观看| 国产精品一区二区三区成人| 国产精品国模在线| 麻豆乱码国产一区二区三区| 色狠狠久久aa北条麻妃| 国产成人精品电影| 一本色道久久88精品综合| 日韩亚洲欧美中文在线| 精品日本高清在线播放| 亚洲精品电影在线| 91精品国产91久久久久久吃药| 欧美男插女视频| 中文字幕在线观看日韩| 国产精品入口免费视| 亚洲黄色在线观看| 欧美性受xxxx白人性爽| 亚洲精品xxx| 日韩欧中文字幕| 亚洲人成网站999久久久综合| 欧美人与物videos| 日韩美女毛茸茸| 亚洲福利视频网| 亚洲欧美国产精品va在线观看| 国产一区二区丝袜高跟鞋图片| 国产精品丝袜白浆摸在线| 欧美黄色三级网站| 国产精品久久91| 亚洲欧美日韩中文在线| 亚洲欧美制服丝袜| 国产精品综合久久久| 日韩免费高清在线观看| 亚洲最大成人在线| 久久久久久久久久久成人| 国产精品偷伦视频免费观看国产| 成人免费视频a| 日韩久久免费视频| 欧洲永久精品大片ww免费漫画| 欧美噜噜久久久xxx| 国产精品美女免费视频| 成人乱人伦精品视频在线观看| 国产69精品99久久久久久宅男| 久久激情五月丁香伊人| 日韩视频免费在线观看| 欧美成人激情视频| 亚洲偷欧美偷国内偷| 日韩精品极品毛片系列视频| 欧美日韩不卡合集视频| 亚洲天堂男人天堂女人天堂| 国产精品高精视频免费| 色樱桃影院亚洲精品影院| 欧美与黑人午夜性猛交久久久| 欧美成人免费大片| www日韩欧美| 精品亚洲男同gayvideo网站| 国产精品一区二区三区免费视频| 久久成人这里只有精品| 亚洲日韩中文字幕| 亚洲综合日韩中文字幕v在线| 欧美精品电影在线| 亚洲精品影视在线观看| 日av在线播放中文不卡| 精品无人区太爽高潮在线播放| 国产日韩欧美影视| 欧美裸身视频免费观看| 丝袜亚洲欧美日韩综合| 一区二区三区黄色| 欧美精品久久久久久久久久| 国产精品精品视频| 亚洲美女激情视频| 国产视频观看一区| 97成人精品视频在线观看| 91成品人片a无限观看| 伊人久久久久久久久久久久久| 欧美激情一级精品国产| 国产做受高潮69| 成人黄色av网站| 91在线观看免费观看| 国产精品手机播放| 亚洲国产小视频在线观看| 免费91在线视频| 亚洲xxxx18| 欧美日韩性生活视频| 久久久久久高潮国产精品视| 久久99国产精品自在自在app| 中文字幕在线国产精品| 中文字幕国产亚洲| 欧美视频专区一二在线观看| 日韩女优人人人人射在线视频| 91久久精品久久国产性色也91| 97精品国产91久久久久久| 久久久久久久久久av| 97不卡在线视频| 亚洲一区中文字幕在线观看| 欧美成人精品h版在线观看| 久久精品免费电影| 亚洲成人精品久久| 成人网欧美在线视频| 国产精品十八以下禁看| 成人免费在线视频网站| 亚洲午夜精品久久久久久久久久久久| 欧美日韩国产中文字幕| 欧美老少配视频| 欧美激情影音先锋| 欧美另类暴力丝袜| 欧美日韩一二三四五区| 98精品国产自产在线观看| 久久久久久久一区二区| 97在线视频国产| 日韩av免费在线观看| 国产精品美女www| 国产精品视频一区二区高潮| 国产精品一二三视频| 国产精品久久久久aaaa九色| 55夜色66夜色国产精品视频| 亚洲视频网站在线观看| 亚洲韩国欧洲国产日产av| 国产亚洲欧美日韩一区二区| 欧美特黄级在线| 91成人在线观看国产| 在线亚洲午夜片av大片| 亚洲欧美精品伊人久久| 日本精品久久久| 国产精品老女人视频| 91福利视频网| 国产精国产精品| 亚洲自拍偷拍视频| 夜夜嗨av一区二区三区四区| 国产成人在线播放| 亚洲激情成人网| 国产成人精品网站| 中文字幕亚洲情99在线| 欧美一级片久久久久久久| 亚洲白拍色综合图区| 日韩免费观看在线观看| 国产精品极品美女在线观看免费| 亚洲国产成人精品久久久国产成人一区| 69精品小视频| 538国产精品一区二区在线| 国产精品第一页在线| 伊人一区二区三区久久精品| 97国产一区二区精品久久呦| 亚洲人成绝费网站色www| 亚洲成av人影院在线观看| 欧美激情伊人电影| 日本乱人伦a精品| 欧美成人精品在线播放| 成人国产亚洲精品a区天堂华泰| 国外色69视频在线观看| 国产精品日日做人人爱| 亚洲精品福利在线观看| 亚洲成人av在线| 超薄丝袜一区二区| 国产成人高潮免费观看精品| 久久久久久久97| 久久精品精品电影网| 成人伊人精品色xxxx视频| 亚洲成人激情在线观看| 欧美国产日韩xxxxx| 色久欧美在线视频观看|