php5和& $ this之间有什么区别

时间:2011-05-05 06:26:53

标签: php

我对$ 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;复制变量但输出这个东西,但是当我使用$obj_instance = &$this;时,输出就是一些东西。为什么会有所不同?

谢谢。

1 个答案:

答案 0 :(得分:1)

这是预期的行为。引用http://php.net/manual/en/language.references.whatdo.php

  

如果为函数内部声明为global的变量赋值,则该引用仅在函数内部可见。您可以使用$ GLOBALS数组来避免这种情况。

因此您的代码的结果只是“某事”。它还会发出关于“尝试获取非对象属性”的通知(启用错误报告时)。