【问题标题】:Pass an object into another class by reference通过引用将对象传递给另一个类
【发布时间】:2010-10-27 08:02:19
【问题描述】:

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

如果我这样做:

$obj1 = new ObjectOne();

然后是这个:

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

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

【问题讨论】:

    标签: php oop


    【解决方案1】:

    我尝试了以下代码,它按预期工作。 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-13
      • 2012-09-15
      • 1970-01-01
      • 2012-10-11
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多