栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP5.3中 in_array()的一个坑

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP5.3中 in_array()的一个坑

因排查问题,发现目前生产环境的PHP版本5.3中有这个问题:

 

//php5.3

 

echo PHP_INT_MAX;

 

$str = "114100007160061630632";

$arr = array("114100007160061630631");

 

var_dump(in_array($str,$arr));

 

echo 'PHP:' .phpversion();

 

exit;

 

对于纯数字的非严格比较,因超出Int最大值,5.3中给出的是结果是 true.

5.5中验证是已经修复的.

 

解决方案:

可以添加第三个参数,严格比较。

var_dump(in_array($str,$arr, true));

 

但是严格比较请注意带来的新的问题:比方说 var_dump(in_array(1, array('1'), true))结果是false,是否影响原有程序


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228506.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号