'&='和'=&'运算符是做什么的?

找到答案是比我想象的要困难得多。 由于我不知道你会怎么称呼它,因此很难运行Google搜索,因为它会忽略这些字符。

我尝试浏览PHP Assignment Operators页面,甚至浏览其他操作页面,但没有发现任何内容告诉我他们的确做了什么。 我不只是想根据我使用它的单个函数来猜测。 那么'&='和'=&'运营商究竟做了什么?

我所知道的是它设置了一个变量,这将是'='部分,所以我真的需要知道'&'部分在做什么。

请不要说明显; 我需要有人来解释他们到底做了些什么。 我知道其中之一是'按位',但这对我来说并不意味着什么。


=&通过引用分配

$a = 1;
$b =& $a;
$a++;
echo $b; // 2

从PHP参考手册:

PHP中的引用是通过不同名称访问相同变量内容的一种手段。


&=是一个按位与赋值

$a = 1;
$a &= 1; // is the same as
$a = $a & 1;
echo $a; // 1

从维基百科上按位与:

按位AND采用两个相等长度的二进制表示,并对每对相应位执行逻辑与操作。 在每一对中,如果第一位为1且第二位为1,则结果为1.否则,结果为0.例如:

    0101
AND 0011
  = 0001

编辑:有关按位操作的实际示例,请参阅我在PHP中按位操作的答案


=&通过引用进行分配。

它不是按值分配一个变量,而是通过引用。

例:

$a = 'foo';
$b =& $a;

$b = 'bar';

echo $a;

打印bar因为$b具有到参考$a ,并因此改变$b也改变的值$a


&=是按位AND

例:

$a = 4 // binary representation: 100
$b = 1 // binary representation: 001

那么$a &= $b就是$a = $a & $b简称,意思是:采取每一步并执行AND操作,即:

0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
0 & 0 = 0

因此

     1 0 0 
AND  0 0 1
     -----
     0 0 0

=> $a = 0 // bit representation 0 ;)

&=

是按位“AND”赋值运算符。 它对变量执行“AND”并存储结果。 (更多信息位于位运算符中,而更一般信息位于C中的位运算中)。

=&

运算符是通过引用来分配的,这使得变量点不是另一个变量或常量的值,而是该内存位置(更多信息在“参考文献”中)。

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

上一篇: What do the '&=' and '=&' operators do?

下一篇: What do the "=&" and "&=" operators in PHP mean?