函数参数:true?

WBOY
Release: 2016-06-23 14:23:53
Original
1191 people have browsed it

本帖最后由 u012362664 于 2013-10-09 20:35:48 编辑

<?     $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";    ?>
Copy after login


程序输出:
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";    ?>
Copy after login



程序输出:
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楼,对否?

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!