我想知道我是否可以动态导入trait并应用于父类。
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?
}
}
非常感谢你的建议!
不,你不能。这个特性是类的一个特性,php把它拉进去,必须一次解决冲突(或者发现冲突没有得到解决),所以你在类中定义它,就这样
不过,你真的必须问问自己,你是否想这样使用它们。如果一个阶级可能有或可能没有某种特质,那么它真的是一个阶级吗?你正确地使用了这个特征吗?如果没有你的用例,很难说,但我敢猜测这几乎总是一种代码气味。
如果你以一种好的方式使用特质,你可能只需要在整个课堂上使用它们?