$this和&;之间php5的区别是什么$这

$this和&;之间php5的区别是什么$这,php,Php,我对$this和&$this有些困惑,请描述一下这一点 更新: 谢谢你的回复。我知道按值传递和按引用传递。请看下面的节目 ///////////////////////////////////////////////////// class my_class { var $my_var; function my_class ($var) { global $obj_instance; $obj_instance = $this;

我对$this和&$this有些困惑,请描述一下这一点

更新: 谢谢你的回复。我知道按值传递和按引用传递。请看下面的节目

/////////////////////////////////////////////////////
class my_class
{
    var $my_var;
    function my_class ($var)
    {
        global $obj_instance;
        $obj_instance = $this;
        $this->my_var = $var;
    }
}
$obj = new my_class ("something");
echo $obj->my_var;
echo $obj_instance->my_var;
////////////////////////////////////
在这个程序中,
$obj_instance=$this
是复制变量,但输出this something something,但当我使用
$obj_instance=&$this时输出是一些东西。为什么不同


谢谢。

这是预期的行为。引述:

如果将引用指定给函数内声明为全局的变量,则该引用将仅在函数内可见。您可以通过使用$GLOBALS数组来避免这种情况


因此,代码的结果就是“某物”。它还将发出一条关于“尝试获取非对象属性”(启用错误报告时)的通知。

您好,感谢提问查看,请描述程序并通过混淆解决问题,我非常感谢您。您好,感谢回复,这不是一个可访问性问题,我只想了解程序$obj_instance=$this;是复制变量,但输出this something something,但当我使用$obj_instance=&$this时;Output是为什么?我的php错误,但我没有得到任何通知和警告尝试运行此脚本。你很容易明白@Gordon所说的回答了你的问题-你传递给
$object\u instance
的对
&$this
的引用只有在函数运行时才有效。在它之外,它将过期。您应该会收到警告。但我在运行脚本时没有收到任何通知和警告。请运行脚本并确认。