两个类构造函数相互调用

时间:2014-04-10 10:43:27

标签: php

我有两个类,它们在构造函数中启动两者的对象。见下面的例子

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

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

尽管没有这样做,有没有解决方案:)

2 个答案:

答案 0 :(得分:2)

这很难回答,因为这是如此抽象,但如果我理解得很好,我会倾向于这样做:

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

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

我想这里B是A的一个组成部分。如果不是这样,你的设计可能有问题。

答案 1 :(得分:2)

递归循环3000 - >

class A
{
    private $b;

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

class B
{
    private $a;

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

不过,不知道你想要达到的目的。