in_array 使用中遇到的问题

in_array 这个函数用来检查数组中是否存在某个值
实际使用中可能会出现这样一个问题

$test = 'a';
$arr = [0,1,2,3,4,5,6,7,8,9];
if(in_array($test, $arr)){
    echo "in";
}else{
    echo "no";
}

这时候我们得到的结果是in
得到这个结果的原因是php在比较数字和字符串的时候,会把字符串转换成数字来进行比较,字符串a被转换成了0
不想要这样的结果,那就采用严格比较模式添加第三个参数为true

$test = 'a';
$arr = [0,1,2,3,4,5,6,7,8,9];
if(in_array($test, $arr, true)){
    echo "in";
}else{
    echo "no";
}

返回no
php的灵活性有时候还是会带来一些小问题的,所以平时还要注意。

你可能感兴趣的:(in_array 使用中遇到的问题)