$this和&;之间php5的区别是什么$这
我对$this和&$this有些困惑,请描述一下这一点 更新: 谢谢你的回复。我知道按值传递和按引用传递。请看下面的节目$this和&;之间php5的区别是什么$这,php,Php,我对$this和&$this有些困惑,请描述一下这一点 更新: 谢谢你的回复。我知道按值传递和按引用传递。请看下面的节目 ///////////////////////////////////////////////////// class my_class { var $my_var; function my_class ($var) { global $obj_instance; $obj_instance = $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
的引用只有在函数运行时才有效。在它之外,它将过期。您应该会收到警告。但我在运行脚本时没有收到任何通知和警告。请运行脚本并确认。