php in_array的坑

本文隶属于分类

Web开发

推荐文章

技术交流学习或者有任何问题欢迎加群 : 154514123 爱上编程

标签:style   使用   sp   代码   问题   c   ha   ca   一个   

今天做一个根据用户充值领礼包码的活动,遇到一个问题部分用户领礼包时会一直提示“系统错误,请稍后再试”,这是什么情况,一开始以为接口出错了,一番排查后发现了问题所在,是in_array坑了~~~

情况大概如下:

in_array(errorCode,errorCodeArr)
errorCode是1,2,3,4,5,分别对应不同的出错信息
errorCodeArr:array(1,2,3,4,5)

看起来是不是很好,很完美,无懈可击~~~

但是当errorCode=‘1||1‘,‘1|1‘,‘1-1‘,‘3-2‘类似值的时候,in_array返回是true

就是说本来取到的是充值金额,结果程序判断是接口返回错误,坑了~~~~

看了一下php官网的文档

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。

所以可以用下面的代码避免模糊比较
in_array(errorCode,errorCodeArr,true)

记录一下这个坑,但愿下不会踩到了,O(∩_∩)O哈哈~

done!

php in_array的坑

标签:style   使用   sp   代码   问题   c   ha   ca   一个   

原文:http://www.cnblogs.com/zqifa/p/php-inarray-1.html

技术交流学习或者有任何问题欢迎加群 : 154514123 爱上编程

广告推荐

讨论区