函数参数:true?
$x1=array(1=>111,2=>12,3=>3333); $y1=in_array(12,$x1,true); echo $y1; echo "\r\n"; $x2=array(1=>111,2=>12,3=>3333); $y2=in_array('12',$x2,true); echo $y2; echo "\r\n"; $x3=array(1=>111,2=>12,3=>3333); $y3=in_array("12",$x3,true); echo $y3; echo "\r\n"; ?>
程序输出:
1
0
0
问题:
1.上面程序编译,没语法错误。
函数in_array( ),第1个参数,都是int整型。
函数in_array( ),第3个参数:true,有什么作用?
为什么,第1个数组,返回结果:1,找到。
每2,3个数组,返回结果:0,找不到?
回复讨论(解决方案)
bool in_array ( mixed needle, array haystack [, bool strict] )
在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
bool in_array ( mixed needle, array haystack [, bool strict] )
在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
1)12与12,内容相同,类型也相同。返回:1
2)'12'与12,内容相同,类型为什么不同?
3)"12"与12,内容相同,类型为什么不同?
函数in_array( ),执行过程是否这样:
1.检查函数各个参数的类型。
如果,类型不对,显示语法错误。
如果,类型对,执行2
2.查找数组。
3.如果,找到,返回结果:1
如果,找不到,返回结果:0
楼主,12是数字,'12'和"12"是字符串,所以类型不同
函数参数:true,PHP官方中文文档,不是很详细。
我的理解是:
函数in_array( )
1)没true,第1个参数,使用类型转换后的值,与数组元素比较。进行查找。
2)没true,第1个参数,使用类型转换前的值,与数组元素比较。进行查找。
对否?
更改:
函数参数:true,PHP官方中文文档,不是很详细。
我的理解是:
函数in_array( )
1)没true,第1个参数,使用类型转换后的值,与数组元素比较。进行查找。
2)加true,第1个参数,使用类型转换前的值,与数组元素比较。进行查找。
对否?
$x1=array(1=>"aaaa",2=>12,3=>"bb"); $y1=in_array(12,$x1); //类型转换后值:12 echo $y1; echo "\r\n"; $x2=array(1=>111,2=>12,3=>3333); $y2=in_array('12',$x2); //类型转换后值:12 echo $y2; echo "\r\n"; $x3=array(1=>111,2=>12,3=>3333); $y3=in_array("12",$x3); //类型转换后值:12 echo $y3; echo "\r\n"; echo "------------------------------"; ?> $x1=array(1=>"aaaa",2=>12,3=>"bb"); $y1=in_array(12,$x1,true); //类型转换前值:12 echo $y1; echo "\r\n"; $x2=array(1=>111,2=>12,3=>3333); $y2=in_array('12',$x2,true); //类型转换前值:'12' ,是个字符串。 echo $y2; echo "\r\n"; $x3=array(1=>111,2=>12,3=>3333); $y3=in_array("12",$x3,true); //类型转换前值:"12",是个字符串。 echo $y3; echo "\r\n"; ?>
程序输出:
1
1
1
---------------------------
1
0
0
bool in_array ( mixed needle, array haystack [, bool strict] )
在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
+1
bool in_array ( mixed needle, array haystack [, bool strict] )
在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
6楼,对否?
上一篇: 我自己在用的php日期抓取
下一篇: vue组件写法规范
推荐阅读
-
华为magic2参数配置详细(超详介绍华为magic2手机)
-
一个目录遍历函数_PHP
-
JavaScript实用库:Lodash源码数组函数解析(九)remove、reverse、slice
-
编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
-
jQuery通过控制节点实现仅在前台通过get方法完成参数传递_jquery
-
nusoap 如何注册类中所有的函数
-
在服务器的mysql中创建自定义函数出错
-
Qt5中一组同类型的widget connect到同一个槽函数
-
qt5 connect写法遇到重载的函数和信号槽
-
解决get方法提交参数中文乱码问题: