猿问

如下代码为什么会输出true而不是false?

<?PHP
$a = 0;
if(in_array($a, array('index', 'post'))){
    echo "true";
}else{
    echo "false";
}
?>
holdtom
浏览 434回答 2
2回答

智慧大石

in_array($a, array('index', 'post'),TRUE) in-array

跃然一笑

这边应该是这样。如果不传第三个参数true的话。php会隐式转换。也就是把右边的字符串转成了整形。'index'和'post'转换成整形之后都是0.所以判断0在其中。如果你把index和post前边都加上数字。比如变成['111index','2222post'].结果就是false了。
随时随地看视频慕课网APP
我要回答