当前位置:  开发笔记 > 编程语言 > 正文

Php By Reference

如何解决《PhpByReference》经验,为你挑选了1个好方法。

有人可以解释一下"&"在下面的内容:

class TEST {

}

$abc =& new TEST();

我知道这是参考.但有人可以说明为什么以及何时需要这样的东西?或者将我指向一个可以很好地解释的网址.我无法理解这个概念.

非常感谢你.



1> Paul Dixon..:

据我所知,你一般不会问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的不同实例,但在第二个例子中它们是相同的.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有