19

简单的问题,是否可以在不使用 eval 的情况下在运行时向 php 类动态添加特征?

4

2 回答 2

15

正如 Glavic 所说,你不能不使用 eval() 或反射黑客(我什至不确定)。

但这不太可能你真的需要。

您可以通过动态类组合(将具有您想要的某些功能的类组合到另一个类中)来实现很多目标。这只是将具有所需功能的类的引用放入托管类中的变量中的问题。

class SomeClassWithNeededFunctionality {}

class SomeClassThatNeedsTheFunctionalityOfTheOtherClass {
    private $serviceClass = NULL;

    public function __construct (SomeClassWithNeededFunctionality $serviceClass) {
        $this -> serviceClass = $serviceClass;
    }
}
于 2013-01-16T09:36:45.153 回答
0

不。

ps 你可以将它们放在独立文件中,并使用 include() 吗?

于 2013-01-16T09:34:50.533 回答