函数参数:true?

php中文网
发布: 2016-06-23 14:23:53
原创
1391人浏览过

本帖最后由 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";    ?>
登录后复制


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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号