您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php in

2024/11/9 14:42:37发布21次查看
in_array 是php 的 检查数组中是否存在某个值 的函数,里面有三个参数bool in_array ( mixed $needle , array $haystack [, bool $strict = false ] ) mixed:类型 支持做种复合类型,参数传入也是可以是int,str,float,array haystack: 源数组,查找的数组。 str
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 的类型是否一致。
有趣的问题:
1 var_dump(in_array('b', array('a'=>true)));2 返回值:true3 4 var_dump(in_array('01',array('1')));5 返回值也是: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 .
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product