PHPin_array()的坑
原创PHP开发中,函数 in_array() 算是使用比较多的。
最近发现一个坑,上代码:
return in_array(字符串, [0, 1]);
测试版本:7.4.3
你认为返回啥?
返回的是 true
反过来也…
return in_array(0, [字符串, 1]);//还是true

如果是语言故意设计成这样的,那只能怪我学艺不精了,同时也非常疑惑这种脑洞设计。
经过测试发现 array_search() 也是这样

解决办法:
- 在使用
in_array()或array_search()之前,先判断数据类型,以避开这个坑。 - 或者设置第三个参数
strict为true,但是这样就必须类型严格一致。作为一门弱类型语言这样就失去了泛用性。
继续测试(崩溃):
return 字符串 == 0;//返回true
永远记住这个坑吧
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:Redis内存模型讲解 下一篇:PHP将任意维数数组转为一维数组
itfan123


