is it possible to add traits to a class in PHP in

2020-02-11 18:10发布

问题:

Simple question, is it possible to dynamically add traits to a php class in runtime without using eval?

回答1:

As Glavic said, you can't without using eval() or reflection hacks (and I'm not even sure about that).

But it's very unlikely you really need to.

You can achieve a lot with dynamic class composition (composing a class with some functionality you want into another class). That's simply a matter of putting a reference to the class with the desired functionality into a variable in the hosting class.

class SomeClassWithNeededFunctionality {}

class SomeClassThatNeedsTheFunctionalityOfTheOtherClass {
    private $serviceClass = NULL;

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


回答2:

No.

p.s. you can have them in standalone files, and use include() ?



标签: php traits