php导入类内部的特性


php import trait inside of class

我想知道我是否可以动态导入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把它拉进去,必须一次解决冲突(或者发现冲突没有得到解决),所以你在类中定义它,就这样

不过,你真的必须问问自己,你是否想这样使用它们。如果一个阶级可能有或可能没有某种特质,那么它真的是一个阶级吗?你正确地使用了这个特征吗?如果没有你的用例,很难说,但我敢猜测这几乎总是一种代码气味。

如果你以一种好的方式使用特质,你可能只需要在整个课堂上使用它们?