是否可以在运行时向 PHP 中的类添加特征?

问题描述 投票:0回答:2

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

php traits
2个回答
16
投票

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

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

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

class SomeClassWithNeededFunctionality {}

class SomeClassThatNeedsTheFunctionalityOfTheOtherClass {
    private $serviceClass = NULL;

    public function __construct (SomeClassWithNeededFunctionality $serviceClass) {
        $this -> serviceClass = $serviceClass;
    }
}

0
投票

没有。

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

© www.soinside.com 2019 - 2024. All rights reserved.