没什么问题啊?
$a === $a->b->a

解决方案 »

  1.   

    你给的例子是php4的构造函数引用,但是在php5种是默认的对象赋值就是引用,所以不需要加&,其次
    如果要得到拷贝的对象就需要用clone来解决,
    <?php
    class A {
        function A($i) {
            $this->value = $i;
            // 试着想明白为什么这里不需要引用
            $this->b = new B(clone $this);//注意用的是clone,去掉&
        }    function createRef() {
            $this->c = new B($this);//没有用clone,去掉&
        }    function echoValue() {
            echo "<br />","class ",get_class($this),': ',$this->value;
        }}
    class B {
        function B($a) {
            $this->a = $a;
        }    function echoValue() {
            echo "<br />","class ",get_class($this),': ',$this->a->value;
        }
    }// 试着理解为什么这里一个简单的拷贝会在下面用 *
    // 标出来的行中产生预期之外的结果
    $a = new A(10);
    $a->createRef();$a->echoValue();
    $a->b->echoValue();
    $a->c->echoValue();$a->value = 11;$a->echoValue();
    $a->b->echoValue(); // *
    $a->c->echoValue();
    ?> class A: 10
    class B: 10
    class B: 10
    class A: 11
    class B: 10
    class B: 10 
      

  2.   

    给你个较为经典的帖子
    http://topic.csdn.net/t/20040908/16/3352969.html
      

  3.   

    上面的结果修改一下,因为起初都用了clone:
    class A: 10
    class B: 10
    class B: 10
    class A: 11
    class B: 10
    class B: 11