2014-04-10 2 views
1

두 클래스가 생성자에서 초기화되는 두 클래스가 있습니다. 이 일을하지에도 불구하고 이에 대한 모든 솔루션이 있습니까두 클래스가 서로를 호출하는 생성자

class A 
{ 
function __construct() 
{ 
    $this->b=new B(); 
} 
} 

class B 
{ 
function __construct() 
{ 
$this->a=new A() 
} 

아래 예 참조이 너무 추상적이기 때문에 대답하기 어렵다, 그러나 나는 잘 이해한다면, 나는이 작업을 수행하는 경향이 그 :

+0

이러한 개체가 서로를 참조해야합니까? 즉, '$ this-> b-> a === $ this'입니까? – raina77ow

+0

예. 방법이있다. 그냥하지 마. 그것은 무한 재귀입니다. '// 힌트': 당신이 원하는 것을 설명하십시오 –

+0

정확히 무엇을 원하니? – Daan

답변

2

:

class A { 
    function __construct() { 
     $this->b = new B($this); 
    } 
} 

class B { 
    function __construct(A $a) { 
     $this->a = $a; 
    } 
} 

여기서 B는 A의 구성 요소라고 가정합니다. 그렇지 않은 경우 디자인에 문제가있는 것 같습니다. 재귀 루프 3000

2

->

class A 
{ 
    private $b; 

    function __construct() 
    { 
     $this->b=new B(); 
    } 
} 

class B 
{ 
    private $a; 

    function __construct() 
    { 
     $this->a=new A() 
    } 
} 

는하지만,이 달성 싶어 알고하지 마십시오.

관련 문제