【新人】请所有PHPER运行一下下面的代码,然后说说感想!

WBOY
发布: 2016-06-23 14:39:00
原创
963 人浏览过

 $arr=array('aaa'=>"123234.232342",'dfwee'=>"asdfas/2131-safa",'drged'=>1234,'kjyr'=>1,'bnt'=>true);                foreach($arr as  $key=>$val){                        echo "{$val}==1234 resault is:".($val==1234)." || {$val}===1234 resault is:".($val===1234)."<br/>";                }
登录后复制


回复讨论(解决方案)

我想你是对这个有点疑惑吧
'bnt'=>true 时输出
1==1234 resault is:1 || 1===1234 resault is:

只不过 true 被你显示成了 1
true==1234 resault is:1 || true===1234 resault is:
是不是就清楚点了呢
1234 是非空值,自然就是逻辑真(true)了,所以 is:1
true===1234 同时还要检查数据类型是否一致,显然一个逻辑型一个数值型是不一致的,所以就 is:

在输出时,true 被打印成 1 和 false 被打印成空

我想你是对这个有点疑惑吧
'bnt'=>true 时输出
1==1234 resault is:1 || 1===1234 resault is:

只不过 true 被你显示成了 1
true==1234 resault is:1 || true===1234 resault is:
是不是就清楚点了呢
1234 是非空值,自然就是逻辑真(true)了,所以 is:1
true===1234 同时还要检查数据类型是否一致,显然一个逻辑型一个数值型是不一致的,所以就 is:

在输出时,true 被打印成 1 和 false 被打印成空
这个判断应该是和array_search函数类似吧,如果第三个参数不设置为TRUE,那么这个判断就是不成立的
那么,为何array_search函数要第三参数可选,而不是默认就两个参数,然后判断数据类型?!

我想你是对这个有点疑惑吧
'bnt'=>true 时输出
1==1234 resault is:1 || 1===1234 resault is:

只不过 true 被你显示成了 1
true==1234 resault is:1 || true===1234 resault is:
是不是就清楚点了呢
1234 是非空值,自然就是逻辑真(true)了,所以 is:1
true===1234 同时还要检查数据类型是否一致,显然一个逻辑型一个数值型是不一致的,所以就 is:

在输出时,true 被打印成 1 和 false 被打印成空
我被array_search害惨了!!!

因为 php 是弱类型的,而弱类型更贴近自然语言
何况出处都要你自己转换数据类型,你不先麻烦吗?

因为 php 是弱类型的,而弱类型更贴近自然语言
何况出处都要你自己转换数据类型,你不先麻烦吗?
那么问题来了,array_seach函数的原理应该和这个类似吧 那为何第三个参数是可选,如果我想搜索,那必须得把第三个参数设置为TRUE,那为何不保留两个参数,默认就是判断类型呢?!

你的代码中有没有出现 array_search,怎么被害惨了?

你的代码中有没有出现 array_search,怎么被害惨了?
我就是用了出问题,才用这样的代码来验证的!!!

奇怪了,数组的数据多来源于数据库或文件。自然每个元素的数据类型是一样的
没必要判断类型吧?

奇怪了,数组的数据多来源于数据库或文件。自然每个元素的数据类型是一样的
没必要判断类型吧?
我的不是WEB程序,看来PHP确实不适合做WEB以为的东西啊!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!