PHPin_array()的坑

原创
小哥 2年前 (2023-05-17) 阅读数 17 #PHP

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

永远记住这个坑吧

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除