加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – in_array()总是返回TRUE

发布时间:2020-12-13 14:08:10 所属栏目:PHP教程 来源:网络整理
导读:这个问题在这里已经有一个答案: PHP in_array() / array_search() odd behaviour2 $arrValue = array('first','second');$ret = in_array(0,$arrValue);var_dump($ret);var_dump($arrValue); 以上示例给出以下结果: bool(true)array(2) { [0]= string(5) "
这个问题在这里已经有一个答案:> PHP in_array() / array_search() odd behaviour2
$arrValue = array('first','second');
$ret = in_array(0,$arrValue);
var_dump($ret);
var_dump($arrValue);

以上示例给出以下结果:

bool(true)
array(2) {
  [0]=> string(5) "first"
  [1]=> string(6) "second"
}

为什么in_array()匹配针0到任何给定的干草堆?

这是因为该功能使用了非严格的比较.数组中的字符串与整数0进行比较.某些类型转换正在发生数据丢失,并且都被视为相同:
var_dump(0 == 'first'); //  bool(true)

所以解决这个问题,可以使用第三个参数设置为true来请求严格的比较.

$ret = in_array(0,$arrValue,true);

牢记,严格严格.在严格的比较中,0不等于“0”.

文件:http://nl3.php.net/in_array

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读