LEN

PHP in_array 第三参数
php 中存在的坑还是蛮多的. 今天同事问我个问题, 我打错了... 基础还是不给力 这里做个记录看到官方手册的解...
扫描右侧二维码阅读全文
14
2017/02

PHP in_array 第三参数

php 中存在的坑还是蛮多的. 今天同事问我个问题, 我打错了... 基础还是不给力 这里做个记录
http://php.net/manual/zh/function.in-array.php

看到官方手册的解释, 可以发先 in_array 存在三个参数 第三参数是默认的 false

相信很多phper 都用过in_array 但用过第三个参数的,应该相对较少吧. 我之前是没有用过.
但以后我应该回大量使用 in_array 的第三个参数

下面的函数返回值是什么 :

in_array(0, array('s'));

我答的是false, 但 实际返回值却是 true.

见鬼了, 同事给我的解释 in_array 的第三个参数不为true 时, in_array的比较是弱类型 不严格的!

在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。

也就是说 0 和 's' 作对比时 字符串和整型对比 自动转型, 's' 转为 0 ...........

知道php是弱类型语言, 没想到这么弱, 以后在使用in_array 需要谨慎, 不应该在使用每个函数前都要谨慎,
查看函数是否存在未知的问题. 自己一直以来学习也并不仔细. 没事多看看 官网 http://php.net 文档.
不要等吃一堑才长一智!

最后修改:2017 年 02 月 14 日 11 : 50 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论