有人可以解释一下"&"在下面的内容:
class TEST { } $abc =& new TEST();
我知道这是参考.但有人可以说明为什么以及何时需要这样的东西?或者将我指向一个可以很好地解释的网址.我无法理解这个概念.
非常感谢你.
据我所知,你一般不会问PHP引用,而是关于$foo =& new Bar();
构造习语.
这只在PHP4中看到,因为通常$foo = new Bar()
存储对象的副本.除非类在构造函数中存储对$ this的引用,否则通常不会引起注意.当稍后在返回的对象上调用方法时,当意图可能只有一个时,将存在两个不同的对象副本.
考虑这个代码,其中构造函数在全局var中存储对$ this的引用
class Bar { function Bar(){ $GLOBALS['copy']=&$this; $this->str="hello"; } } //store copy of constructed object $x=new Bar; $x->str="goodbye"; echo $copy->str."\n"; //hello echo $x->str."\n"; //goodbye //store reference to constructed object $x=&new Bar; $x->str="au revoir"; echo $copy->str."\n"; //au revoir echo $x->str."\n"; //au revoir
在第一个例子中,$ x和$ copy引用了Foo的不同实例,但在第二个例子中它们是相同的.