php 5.4中的traits,是新引入的特性wesppjs,中文還真不知道如何準確翻譯好。其實際的目的,是為了有的場合想用多繼承,但php又沒多繼承,於是就發明了這樣的乙個東西。
traits可以理解為一組能被不同的類都能呼叫到的方法集合,但traits不是類!不能被例項化。先來例子看下語法:
<?php trait mytrait
function traitmethod2(){}
}//然後是呼叫這個traits,語法為:
class myclass
//這樣就可以通過use mytraits,呼叫traits中的方法了,比如:
$obj = new myclass();
$obj-> traitmethod1 ();
$obj-> traitmethod2 ();
>
接下來,我們**下為什麼要用traits,舉個例子,比如有兩個類,分別為business(商務者)和individual(個人),它們都有位址的屬性,傳統的做法是,再抽象出乙個這兩個類都共同有特性的父類,比如client,在client類中設定訪問屬性address,business和individual分別繼承之,如下**:
// class client
class client
public setaddress($address)
}
class business extends client
// class individual
class individual extendswww.cppcns.com client
但假如又有乙個叫order類的,需要訪問同樣的位址屬性,那怎麼辦呢?order類是沒辦法繼承client類的,因為這個不符合oop的原則。這個時候traits就派上用場了,可以定義乙個traits,用來定義這些公共屬性。
// trait address
trait address
public wesppjssetaddress($address)
}// class business
class business
// class individual
class individual
// class order
class order
這樣就方便多了!
本文標題: php中的traits簡單使用例項
本文位址: /wangluo/php/124636.html
PHP中的Traits詳解
trait drive n class person class student extends person student new student student study student eat student driving 輸出結果如下 study eatdriving trait 上面...
php中traits學習筆記
越來越多的框架和 開始使用traits方式去組織一些功能,這是非常高效的 組織結構。通過trait來減少不必要的類繼承關係,讓 更加復用,形成可以拔插的 集合。通過逗號分隔,在 use 宣告列出多個 trait,可以都插入到乙個類中。單個的例子 trait seller class myseller...
php中traits學習筆記
越來越多的框架和 開始使用traits方式去組織一些功能,這是非常高效的 組織結構。通過trait來減少不必要的類繼承關係,讓 更加復用,形成可以拔插的 集合。通過逗號分隔,在 use 宣告列出多個 trait,可以都插入到乙個類中。單個的例子 trait seller class myseller...