我知道=&
通常意味着“通过引用分配”,但如果我们反转这两个字符会发生什么,因为我在很多PHP脚本中都看到了这一点?
答案 0 :(得分:6)
$a &= $b
是$a = $a & $b
的缩写,它是按位和运算符。
答案 1 :(得分:5)
这是复合bitwise AND /赋值运算符:
$x = 0x01;
$y = 0x11;
$y &= $x; // bitwise AND $y and $x, assign result back to $y
var_dump($y == 0x01); // true
答案 2 :(得分:4)
&=
是compound assignment operator,而=&
实际上是两个独立的运算符(=
和&
),一起推送。这是合法的语法,因为PHP不要求它们之间有空格。
&=
在左侧和右侧之间执行按位AND操作,然后将结果分配给左侧变量。
$x = 1;
$x &= 0; // $x === 0 now. A more verbose syntax would be "$x = $x & 0;"
另一方面
=&
应该真正扩展到= &
,因为运营商是分开的。这称为assignment by reference。 =
是您的标准赋值运算符,&
在变量名称前加前缀reference
会返回变量。
$y = "foobar";
$x = &$y; // $x now holds a reference to $y.