这是什么意思 return($var & 1);

Hel*_*rld 0 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"));
?>
Run Code Online (Sandbox Code Playgroud)

Cri*_*sty 5

&(符号)符不按位AND

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

比方说$var = 13,在二进制中是1101(因为13 = 2^3 + 2^2 + 2^0)。

1101 & 0001你得到0001. 所以你可以得到1if$var的最后一位是 1(意味着它是奇数)或者0if$var的最后一位$var是0,这意味着它被写成 2 的幂之和,没有 2^0` 意味着它的偶数。