我对$ 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;
时,输出就是一些东西。为什么会有所不同?
谢谢。
答案 0 :(得分:1)
这是预期的行为。引用http://php.net/manual/en/language.references.whatdo.php:
如果为函数内部声明为global的变量赋值,则该引用仅在函数内部可见。您可以使用$ GLOBALS数组来避免这种情况。
因此您的代码的结果只是“某事”。它还会发出关于“尝试获取非对象属性”的通知(启用错误报告时)。