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的灵活性有时候还是会带来一些小问题的,所以平时还要注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 2,041评论 1 24
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,392评论 0 20
  • 高收入者怎么思考问题 为什么同样的职位,有的人能拿高薪,有的人就只能拿基本的生活费呢?为什么很多人明明很努力,工资...
    戰敭阅读 332评论 0 2
  • 1. 彼时,我站在讲台上义愤填膺,他站在自己的座位上不知作何表情,心里也许想着,这个二傻子;也许,想着其他不相关的...
    依着花的树阅读 289评论 0 2