I know that =&
usually means "assign by reference", but what happens if we reverse these two characters, since I've seen this in plenty of PHP scripts?
问问题
154 次
3 回答
6
$a &= $b
$a = $a & $b
是按位与运算符的缩写。
于 2013-04-18T09:03:55.347 回答
5
它是复合位与/赋值运算符:
$x = 0x01;
$y = 0x11;
$y &= $x; // bitwise AND $y and $x, assign result back to $y
var_dump($y == 0x01); // true
于 2013-04-18T09:01:35.170 回答
4
&=
是一个复合赋值运算符,而=&
实际上是两个独立的运算符(=
和&
),推到一起。这是合法的语法,因为 PHP 不要求它们之间有空格。
&=
在左侧和右侧之间执行按位与运算,然后将结果分配给左侧变量。
$x = 1;
$x &= 0; // $x === 0 now. A more verbose syntax would be "$x = $x & 0;"
另一方面
,由于运营商是分开的,因此=&
应该真正扩展到。= &
这称为引用分配。the=
是您的标准赋值运算符,并且在&
变量名之前添加前缀的 when 将返回reference
给变量。
$y = "foobar";
$x = &$y; // $x now holds a reference to $y.
于 2013-04-18T09:06:23.263 回答