php中in_array函数的坑

时间:2024-11-16 22:35:37

由于PHP是弱类型语言,所以有自动类型转换

例子

 $array = [0, 1, 2, '3'];

 var_dump(in_array('abc', $array)); //true
var_dump(in_array('1ac', $array)); //true
// 以上自动转换 abc -> 0, 1ac -> 1
// 所以判断都是true // 类似的还有 $a = null;
$b = false;
echo $a == $b; //true $c = "";
$d = 0;
echo $c == $d; //true // 所有由此,有些重要的地方要使用 === 全等于来判断(类型和值都相等)

所以使用的时候一定要注意对值的判断是否正确,

如果确认函数的返回值一定是bool 那么尽量使用 === 全等于