PHP中的引用赋值运算符,=&

在PHP中, =& (等号&符号)赋值操作符是做什么的?

它是否被弃用?


它不被弃用,不太可能。 例如,这是一种标准方式,可以将一个数组的一部分或对象镜像更改为另一个,而不是复制现有数据。

这就是所谓的按引用分配,引用手册,“这意味着两个变量最终指向相同的数据,而且任何地方都不会复制任何内容”。

在PHP 5中,唯一被=&弃用的是“通过引用分配new的结果”,这可能是任何混淆的根源。 new通过引用自动分配,因此&$o = &new C;是冗余的/不推荐使用的$o = &new C; ,但不在$o = &$c;


由于很难搜索,所以请注意=& (等号符号)与= & (等于空间符号)是相同的,并且通常被编写为可以运行到另一个变量中,如$x = &$y['z'];$x = &$someVar (&符美元符号变量名称)。 从文档简化示例:

$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4

这里有一个方便的链接,指向PHP手册中关于Assign By Reference的详细部分。 该页面是参考文献系列的一部分 - 值得花一点时间阅读整个系列。


这是两个不同的运营商。 =是你可能知道的任务。 &表示变量应该通过引用而不是按值来访问。


$x = &$y['z'];

如果它不存在,也会创建$y['z'] ,并将其设置为null

这可以防止您可能想要读取的错误消息。 我还没有找到这方面的文件; 对于我所知道的,在5.3中可能是新的。

链接地址: http://www.djcxy.com/p/1709.html

上一篇: Reference assignment operator in PHP, =&

下一篇: Is there ever a need to use ampersand in front of an object?