PHP 操作符

按位与赋值运算符 (&=) 为第一个操作数分配一个等于两个操作数按位与运算结果的值。

(x &= y) 等价于 (x = x & y)

按位与运算符 (&) 是一个二元运算符,它采用两个长度相等的位模式并执行逻辑与运算在每对相应的位上。如果同一位置的两个位均为 1,则返回 1,否则返回 0。

Bit_1Bit_2Bit_1 和 Bit_2
000
100
010
111

下面的示例描述了按位与运算符的工作原理:

50 & 25 returns 16

     50    ->    110010  (In Binary)
   & 25    ->  & 011001  (In Binary)
    ----        --------
     16    <-    010000  (In Binary) 

使用按位与赋值运算符(&=)的代码如下:

<?php
$x = 50;
$y = 25;

//按位与赋值运算
$x &= $y;

//显示结果
echo "x = $x";
?> 

输出上述代码的内容为:

x = 16 

示例:检查数字是偶数还是奇数

偶数的最后一位始终是0,而对于奇数,最后一位始终为 1。因此,对于给定数字 n,如果 n 为偶数,则 (n & 1) 返回 0,否则返回 1。

偶数: 

     50   ->    110010  (In Binary)
    & 1   ->  & 000001  (In Binary)
    ----       --------
      0   <-    000000

奇数: 

     99   ->    1100011  (In Binary)
    & 1   ->  & 0000001  (In Binary)
    ----       ---------
      1   <-    0000001 

下面的代码检查给定的数字是偶数还是奇数:

<?php
function CheckEven($MyNum){
  $x = $MyNum;
  $x &= 1;
  if ($x == 1){
    echo $MyNum." 是奇数.\n";
  } else {
    echo $MyNum." 是偶数.\n";
  }
}

CheckEven(50);
CheckEven(99);
?> 

上面的代码将给出以下结果输出:

50 是偶数.
99 是奇数.