国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP中的traits簡單使用實例

2024-05-04 23:35:16
字體:
供稿:網(wǎng)友

這篇文章主要介紹了PHP中的traits簡單使用實例,本文著重講解traits的語法、traits有什么作用、什么情況下使用traits,需要的朋友可以參考下

PHP 5.4中的traits,是新引入的特性,中文還真不知道如何準(zhǔn)確翻譯好。其實際的目的,是為了有的場合想用多繼承,但PHP又沒多繼承,于是就發(fā)明了這樣的一個東西。

Traits可以理解為一組能被不同的類都能調(diào)用到的方法集合,但Traits不是類!不能被實例化。先來例子看下語法:

 

 
  1. <?php 
  2. trait myTrait{ 
  3. function traitMethod1(){} 
  4. function traitMethod2(){} 
  5.  
  6.  
  7. //然后是調(diào)用這個traits,語法為: 
  8. class myClass{ 
  9. use myTrait; 
  10.  
  11. //這樣就可以通過use myTraits,調(diào)用Traits中的方法了,比如: 
  12. $obj = new myClass(); 
  13. $obj-> traitMethod1 (); 
  14. $obj-> traitMethod2 ();  

接下來,我們探究下為什么要用traits,舉個例子,比如有兩個類,分別為business(商務(wù)者)和Individual(個人),它們都有地址的屬性,傳統(tǒng)的做法是,再抽象出一個這兩個類都共同有特性的父類,比如client,在client類中設(shè)置訪問屬性address,business和individual分別繼承之,如下代碼:

 

 
  1. // Class Client  
  2. class Client {  
  3. private $address;  
  4. public getAddress() {  
  5. return $this->address;  
  6. }  
  7. public setAddress($address) {  
  8. $this->address = $address;  
  9. }  
  10. }  
  11.  
  12. class Business extends Client{  
  13. //這里可以使用address屬性  
  14. }  
  15.  
  16. // Class Individual  
  17. class Individual extends Client{  
  18. //這里可以使用address屬性  
  19. }  

但假如又有一個叫order類的,需要訪問同樣的地址屬性,那怎么辦呢?order類是沒辦法繼承client類的,因為這個不符合OOP的原則。這個時候traits就派上用場了,可以定義一個traits,用來定義這些公共屬性。

 

 
  1. // Trait Address 
  2. trait Address{ 
  3. private $address
  4. public getAddress() { 
  5. eturn $this->address; 
  6. public setAddress($address) { 
  7. $this->address = $address
  8. // Class Business 
  9. class Business{ 
  10. use Address; 
  11. // 這里可以使用address屬性 
  12. // Class Individual 
  13. class Individual{ 
  14. use Address; 
  15. //這里可以使用address屬性 
  16. // Class Order 
  17. class Order{ 
  18. use Address; 
  19. //這里可以使用address屬性 
  20. }  

這樣就方便多了!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 瓮安县| 屏边| 怀仁县| 同仁县| 冀州市| 宁晋县| 津市市| 文成县| 登封市| 攀枝花市| 无锡市| 洪湖市| 西昌市| 万荣县| 北京市| 海南省| 金溪县| 合水县| 孟州市| 平顺县| 岳普湖县| 德格县| 滦南县| 漳州市| 洪雅县| 灌云县| 富顺县| 吉木乃县| 无棣县| 福清市| 抚顺市| 松滋市| 广平县| 沅江市| 罗山县| 罗甸县| 阜新| 融水| 清流县| 蛟河市| 宣汉县|