问题描述:
用到array_filter()函数时候 发现了 return($var & 1); 一时间不知道啥意思:
function test_odd($var)
{
return($var & 1);
}
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>
解释:
& 除了取地址,还是位运算符, 也就是二进制数的与运算,
比如:
00101
11100
---------
00100
return($var & 1);
就是
var变量和1做与运算;假如
var 是2 二进制为
1 0
0 1
----
0 0
所以 返回 0 , 如果是个奇数和 1 做与运算 则返回1
则array_filte( arr,”testodd”)是返回奇数值;注:arrayfilte( arr,"test_odd") 中$arr 中每个元素作为 回调函数test_odd的参数;