其实不算暗坑,有个特殊的地方,用的是in_array检测值是否在数组中,数组赋值:

$arr=array("",0);

那么,下面的代码结果是什么?

var_dump(in_array("test",$arr));

实际结果是,true。因为字符串==0,是true。

回到函数,只有启用了第三个严格模式的参数,才能得到预期的false。怀疑严格模式就是类似绝对等于的比较。

 in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool

记录下这个由辰吉同学发现的暗坑,没有测试的话,这个问题我可能一直无法发现,感谢测试同学的细心。

Related Posts: PHP in_array 字符串和0的暗坑 :

avatar