2016-08-04 35 views
0

今天我想起了問題,兩年前我接受了採訪。如何在構造函數中創建需要自己的對象? (PHP)

我想解決它,因爲它非常困擾我。

所以,這裏是我的PHP類:

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

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

我如何創建該類的對象?但我們不能改變這個班級。

+0

創建其延伸的一個B類並覆蓋A的構造方法並通過new A(new B())創建; –

回答

6

有多種解決方案,最瑣碎一種是採用ReflectionClass::newInstanceWithoutConstructor

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

另一種解決方案將被延伸的類和重載構造有:

class B extends A { 
    function __construct() {} 
} 
$a = new A(new B); 
相關問題