通过引用将对象传递给类构造器-对行为感到困惑

啤酒

我最近一直在处理较旧的项目,并对它们进行了一些升级。我已经构建了类似于以下代码的代码:

class Foo{

    public $some_variable = "AAA";

    public function do_some_action(){

        echo $this->some_variable;
        // Prints out 'AAA'

        $bar = new Bar($this);
        $bar->different_action();

        echo $this->some_variable;
        // Prints out 'BBB' - why ?      

    }
} class Bar {

    //Constructor
    public function Bar($foo){
        $this->foo = $foo;
    }

    public function different_action(){
        $this->foo->some_variable = "BBB";
    }

}

我不完全理解为什么函数Bar :: different_action()影响Foo的公共变量。在这种情况下,>> $ this <<是否总是作为参考传递?我希望有一些参考,例如:

public function Bar(&$foo){
            $this->foo =& $foo;
}

我的逻辑肯定会失败,但是如果有人告诉我在哪里以及为什么,我将不胜感激:)

t3chguy

对象通过引用传递:文档:http : //php.net/manual/en/language.oop5.references.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对返回对象的行为感到困惑

来自分类Dev

通过Boost bcp行为感到困惑

来自分类Dev

对concat()的行为及其返回的对象感到困惑

来自分类Dev

对@output装饰器行为感到困惑

来自分类Dev

对 Flask 的行为感到困惑

来自分类Dev

正在通过引用将对象传递给构造函数

来自分类Dev

如何通过引用将对象传递给构造函数

来自分类Dev

对Java构造函数感到困惑

来自分类Dev

对Java构造函数感到困惑

来自分类Dev

对C ++类用法感到困惑

来自分类Dev

对类型类约束感到困惑

来自分类Dev

对javascript对象键感到困惑

来自分类Dev

对Publish()。Refcount()的行为感到困惑

来自分类Dev

对通过此Python函数中的引用传递感到困惑

来自分类Dev

对 C 中的“通过引用传递”以及何时使用 & 或 * 感到困惑

来自分类Dev

对Javascript构造函数和原型感到困惑

来自分类Dev

我对这个C ++构造函数感到困惑

来自分类Dev

对使用JQuery Selector引用感到困惑

来自分类Dev

我对如何引用报价感到困惑

来自分类Dev

数组的线性传递让我感到困惑

来自分类Dev

对C ++中的虚拟基类感到困惑

来自分类Dev

对C ++中的虚拟基类感到困惑

来自分类Dev

对 html 中类的语法分配感到困惑

来自分类Dev

对 python 中的静态类变量感到困惑

来自分类Dev

对php中的抽象类感到困惑

来自分类Dev

c# 对基类继承感到困惑

来自分类Dev

通过总和查询对我的组感到困惑

来自分类Dev

对嵌套对象文字属性感到困惑

来自分类Dev

Javascript:对对象属性访问感到困惑