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

Lak*_*mon 0 php oop class

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

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

所以,这是我的PHP类:

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

    function getValue()
    {
        echo 'Success';
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能创建这个类的对象?但我们无法改变这门课程.

bwo*_*ebi 6

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

$a = new A((new ReflectionClass("A"))->newInstanceWithoutConstructor());
Run Code Online (Sandbox Code Playgroud)

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

class B extends A {
    function __construct() {}
}
$a = new A(new B);
Run Code Online (Sandbox Code Playgroud)