2013-11-22 39 views
0

我想知道,我可以動態地導入特徵並應用到父類。php導入特徵裏面的類

trait A{ 
function a(){} 
} 

class B{ 
    //use A <-no import here 

    function b(){ 
    //Define if need trait A 

    // Import A and apply to B <- Possible? 
    } 
} 

非常感謝您的建議!

回答

2

不,你不能。這個特性是這個類的一個特性,並且php在那裏放大它,必須一次性解決衝突(或者發現它們沒有被解決),所以你在類中定義了它,就是這樣。

你真的不得不問自己,如果你想這樣使用它們。如果一個班可能或可能沒有特質,它真的是一堂課嗎?你是否正確地使用了這個特質?很難說沒有你的用例,但我敢於猜測這幾乎總是一種代碼味道。

如果你以一種很好的方式使用特質,你可能只是將它們用於整個班級?