如何在构造函数中创建需要自己的对象? (PHP)

时间:2016-08-04 05:51:57

标签: php class oop

今天我回忆起两年前接受采访的问题。

我想解决它,因为它非常困扰我。

所以,这是我的PHP类:

class A
{
    function __construct(A $aObject)
    {
        $aObject->getValue();
        return;
    }

    function getValue()
    {
        echo 'Success';
    }
}

我如何创建这个类的对象?但我们无法改变这门课程。

1 个答案:

答案 0 :(得分:6)

有多种解决方案,最简单的解决方案是使用ReflectionClass::newInstanceWithoutConstructor

$a = new A((new ReflectionClass("A"))->newInstanceWithoutConstructor());

另一个解决方案是扩展类并在那里重载构造函数:

class B extends A {
    function __construct() {}
}
$a = new A(new B);