in_array 是PHP 的检查数组中是否存在某个值 的函数,里面有三个参数 bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

mixed:类型 支持做种复合类型,参数传入也是可以是int,str,float,array

haystack:  源数组,查找的数组。

strict : 参数接受两个 true 和false 两个参数.该参数主要检查 $needle  和$haystack  中的value 的类型是否一致。

有趣的问题:

 var_dump(in_array('b', array('a'=>true)));
返回值:true var_dump(in_array('01',array('1')));
返回值也是:true

其实上面的问题不难接受:

第一种、var_dump(in_array('b', array('a'=>true)))  这个比较是比较 'b'==true 这样的 类型比较 b 是变量或者一个字符串string  和bool 类型比较.结果是true

具体的可以看官方的:http://php.net/manual/zh/types.comparisons.php  但是如果 var_dump('b'===true); 结果可能就不一样了返回值:false 就是类型比较的问题

第二种、其实也一样都是在类型判断的问题。大家可以在开发环境中试试。

var_dump('01'==1); 返回值:true
var_dump('01'===1);返回值:false

大家有心情可以看下in_array 源码.https://github.com/php/php-src/blob/master/ext/standard/array.c

源码中有php_search_array 的源码,当使用非严格模式时,调用 fast_equal_check_function 函数。

所以如果在使用in_array 查找的数据,如果对类型要求严格,请这样使用:var_dump(in_array('01',array('1'),true)); strict :传递true .

最新文章

  1. sqlyog重复使用的方法(30天)
  2. the server quit without updating pid file (/var/lib/mysql/localhost.localdomain.pid)
  3. [转]ng-grid
  4. 转: YAML 语言教程 from(阮一峰)
  5. 理解NDCG
  6. POJ3041Asteroids(最小点覆盖+有点小抽象)
  7. MongoDB 删除数据库
  8. TJU 4087. box
  9. [Angular 2] Order Dynamic Components Inside an Angular 2 ViewContainer
  10. iOS 下拉刷新 上拉加载实现原理
  11. (三)Qt语言国际化
  12. MVC神韵---你想在哪解脱!(十二)
  13. 将EmEditor加入到鼠标右键菜单
  14. iOS-网络编程(一)HTTP协议
  15. Balsamiq Mockups注册码
  16. HDU 3785 寻找大富翁
  17. c++概括
  18. python3全栈开发-socket编程
  19. LGTB 与大数
  20. Spring框架(1)---Spring入门

热门文章

  1. iOS开发ARC入门和使用
  2. VSTS负载测试——如何:使用 SQL 创建结果存储区
  3. poj 3903 最长上升子序列 Stock Exchange
  4. android快捷简单的实现音乐播放器
  5. 1小时学Python脚本
  6. Linux服务器监控系统 ServMon V1.1---张宴
  7. Composite 组合模式
  8. codevs1099字串变换(Bfs)
  9. Oracle中的over(partition by...)分析函数及开窗函数
  10. FusionChart学习笔记(部分)