gpt4 book ai didi

引用 Php

转载 作者:可可西里 更新时间:2023-10-31 23:59:53 30 4
gpt4 key购买 nike

谁能解释一下下面“&”的作用:

class TEST {

}

$abc =& new TEST();

我知道这是引用。但是有人可以说明我为什么以及什么时候需要这样的东西吗?或者给我指向一个对此有很好解释的网址。我无法理解这个概念。

非常感谢。

最佳答案

据我了解,您一般不是在询问 PHP 引用,而是在询问 $foo =& new Bar(); 构造惯用语。

这仅在 PHP4 中可见,因为通常的 $foo = new Bar() 存储对象的副本。这通常不会引起注意,除非该类在构造函数中存储了对 $this 的引用。稍后在返回的对象上调用方法时,可能会存在两个不同的对象副本,而意图可能只有一个。

考虑这段代码,其中构造函数将对 $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 的不同实例,但在第二个示例中它们是相同的。

关于引用 Php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/475990/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com