ani*_*son 20 php variables operators
找到答案的结果比我想象的要困难得多.由于我不知道您称之为什么,因此很难运行Google搜索,因为它会忽略这些字符.
我尝试浏览PHP Assignment Operators页面,甚至其他操作页面,并没有发现任何告诉我他们究竟做了什么.我不仅仅想根据我使用它的单一功能进行猜测.那么'&='和'=&'运算符到底是做什么的呢?
我所知道的是它设置了一个变量,它是'='部分,所以我真的需要知道'&'部分正在做什么.
请不要说明显; 我需要有人来解释他们的确切行为.我知道其中一个是"按位",但这对我没有任何意义.
Gor*_*don 36
=& 通过引用分配
$a = 1;
$b =& $a;
$a++;
echo $b; // 2
Run Code Online (Sandbox Code Playgroud)
来自PHP参考手册:
PHP中的引用是一种通过不同名称访问相同变量内容的方法.
&=是一个按位AND赋值
$a = 1;
$a &= 1; // is the same as
$a = $a & 1;
echo $a; // 1
Run Code Online (Sandbox Code Playgroud)
按位AND采用相等长度的两个二进制表示,并对每对相应位执行逻辑AND运算.在每对中,如果第一位为1而第二位为1,则结果为1.否则,结果为0.例如:
0101
AND 0011
= 0001
Run Code Online (Sandbox Code Playgroud)
编辑:有关按位运算的实际示例,请参阅我对PHP中的按位运算的回答
Fel*_*ing 10
=&是通过参考分配.
它不是按值而是通过引用来分配变量.
例:
$a = 'foo';
$b =& $a;
$b = 'bar';
echo $a;
Run Code Online (Sandbox Code Playgroud)
print bar因为$b有引用$a而因此更改$b也会更改值$a.
&=是有点的AND.
例:
$a = 4 // binary representation: 100
$b = 1 // binary representation: 001
Run Code Online (Sandbox Code Playgroud)
然后$a &= $b只是简称$a = $a & $b并意味着:抓住每一点并执行AND操作,即:
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
0 & 0 = 0
Run Code Online (Sandbox Code Playgroud)
因此
1 0 0
AND 0 0 1
-----
0 0 0
=> $a = 0 // bit representation 0 ;)
Run Code Online (Sandbox Code Playgroud)