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

<?PHP
$a = 0;
if(in_array($a, array('index', 'post'))){
    echo "true";
}else{
    echo "false";
}
?>
阅读 2.8k
2 个回答

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

in-array

图片描述

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题