'&='和'=&'运算符是做什么的?
找到答案是比我想象的要困难得多。 由于我不知道你会怎么称呼它,因此很难运行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