简单的问题是,是否可以在运行时动态地将特性添加到php类而不使用eval?
答案 0 :(得分:10)
正如格拉维奇所说,你不能不使用eval()或反射黑客(我甚至不确定)。
但你真的不太可能。
您可以通过动态类组合实现很多功能(将具有某些功能的类组合到另一个类中)。这只是将具有所需功能的类的引用放入托管类中的变量。
class SomeClassWithNeededFunctionality {}
class SomeClassThatNeedsTheFunctionalityOfTheOtherClass {
private $serviceClass = NULL;
public function __construct (SomeClassWithNeededFunctionality $serviceClass) {
$this -> serviceClass = $serviceClass;
}
}
答案 1 :(得分:0)
没有
P.S。你可以将它们放在独立的文件中,并使用include()?