这意味着什么回报($ var& 1);

时间:2013-07-24 06:24:40

标签: php

在下面一行的PHP中return($var & 1);这是什么意思,什么是&在这种情况下意味着什么?

<?php
function test_odd($var)
{
return($var & 1);
}

$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>

1 个答案:

答案 0 :(得分:3)

&(&符号)运算符按位AND

如果$var 奇数,则会返回1,否则会返回0

我们说$var = 13,二进制文件是1101(因为13 = 2^3 + 2^2 + 2^0)。

当您执行1101 & 0001时,您会获得0001。因此,如果1的最后一位(意味着它是奇数),则可以获得$var;如果0的最后一位为0,则可以$var,这意味着{{1}被写成两个幂的和,没有2 ^ 0表示它的偶数。