php中in_array函数的坑

由于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 那么尽量使用 === 全等于

相关推荐