什么是=&
(等号号)赋值运算符做PHP?
是否已弃用?
另请参见stackoverflow.com/questions/3200009(标记为与此重复)
—
Artefacto 2010年
什么是=&
(等号号)赋值运算符做PHP?
是否已弃用?
Answers:
它不被弃用,而且不太可能被弃用。例如,这是一种标准方法,可以对一个数组或对象镜像进行更改,而对另一数组进行更改,而不是复制现有数据。
这称为按引用赋值,引用引用该手册,“意味着这两个变量最终都指向相同的数据,而没有任何内容被复制到任何地方”。
不赞成使用的唯一方法是PHP 5中的 “通过引用=&
分配结果new
” ,这可能是造成混淆的原因。是由引用自动分配的,因此在中是多余/已弃用,但在中却没有。new
&
$o = &new C;
$o = &$c;
由于很难搜索,因此请注意=&
(等于&)与= &
(等于空格&)相同,并且通常这样编写,即它会遇到另一个变量,例如$x = &$y['z'];
或$x = &$someVar
(&符号美元符号变量名)。从文档简化的示例:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
这是两个不同的运算符。=
是您可能知道的作业。并且&
意味着该变量应通过引用而不是值进行访问。