PHP類只能繼承一個父類(單繼承),trait就是用來解決這個問題的。
Trait 是為類似 PHP 的單繼承語言而準備的一種代碼復用機制。Trait 為了減少單繼承語言的限制,使開發(fā)人員能夠自由地在不同層次結構內(nèi)獨立的類中復用方法。Trait 和 Class 組合的語義定義了一種減少復雜性的方式,避免傳統(tǒng)多繼承和 Mixin 類相關典型問題。
列如:Demo類里面使用了trait A和B,new Demo類的時候就可以使用trait中的A和B里面的eat,sing方法
trait A{
? ? public function eat(){
? ? echo '我會吃';
? ? }
}
trait B{
? ? public function sing(){
? ? echo '我會唱';
? ? }
}
class Demo {
use A;
use B;
}
$res = new Demo();
$res->eat();
$res->sing();