php中 & 和 && 的区别

&&是逻辑运算”与“,参加运算的两个量理解为逻辑值TRUE、FALSE在进行运算,两个值都为TRUE时结果为TRUE,否则结果为FALSE,例如:3 && 5的结果为TRUE。

&是数学运算”按位与“,参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。

起因是查看php函数 array_filter() 的时候,例子使用到了 $var & 1 可以取得是否奇偶。

<?php
function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>

以上例程会输出:

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

参考 php.net

评论数量: 0

1
点赞
406
浏览
0
评论

贡献 65