代码之家  ›  专栏  ›  技术社区  ›  bcmcfc

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

  •  2
  • bcmcfc  · 技术社区  · 15 年前

    我确实看到了 this 但它不能完全回答我的问题。

    如果我这样做:

    $obj1 = new ObjectOne();
    

    然后:

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

    在哪里? someFunction() 修改传递给它的对象的属性,将 $obj1 $obj2->passedInObject 两者都有效吗?

    1 回复  |  直到 13 年前
        1
  •  4
  •   rcapote    15 年前

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

    <?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