一次位运算疑惑

来源:互联网 发布:用js怎么写身高和体重 编辑:程序博客网 时间:2024/05/21 08:04

问题描述:
用到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"));?>

解释:

& 除了取地址,还是位运算符, 也就是二进制数的与运算,
比如:

0010111100---------00100

return($var & 1); 就是 var1var 是2 二进制为

 1 0 0 1---- 0 0

所以 返回 0 , 如果是个奇数和 1 做与运算 则返回1

则array_filte(arr,testodd)arrayfilte(arr,"test_odd") 中$arr 中每个元素作为 回调函数test_odd的参数;

0 0
原创粉丝点击