通过引用将对象传递到另一个类

时间:2010-10-27 08:02:19

标签: php oop

我确实看到this问题,但它没有完全回答我的问题。

如果我这样做:

$obj1 = new ObjectOne();

然后这个:

$obj2 = new ObjectTwo($obj1);
$obj2->someFunction();

someFunction()修改传递给它的对象的属性,$obj1$obj2->passedInObject是否都会更新?

1 个答案:

答案 0 :(得分:4)

我尝试了以下代码,它按预期工作。 MyObject中的var在原始对象中递增。

<?php 
class MyObject {
     public $var;
}

class MyObjectTwo {
    public $objVar;
    function __construct($aObj1) {
        $this->objVar = $aObj1;
    }

    public function someFunction() {
        $this->objVar->var++;
    }
}

$obj1 = new MyObject();
$obj1->var = 5; // Originally set to 5

$obj2 = new MyObjectTwo($obj1);
$obj2->someFunction();
echo $obj1->var; // Prints 6