我见到PHP的神了,,,, if("abc" == 0) echo 'ghost!?';if("abc" == "0") echo 'really a ghost!!!';如要严格判定,应该用=== 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 虽然他们的类型是不相同,但是内容相差也巨大啊,一个是0,一个是list23412412423sdfasdf,他们是怎么可能相等的??? 因为类型不一致 首先会把字符串转成int类型 (int)list23412412423sdfasdf 的值就为0 所以相等建议你用=== 既判断值等还判断类型一致 看手册 : 附录 O. PHP 类型比较表关于松散比较(==)和严格比较(===)的两个表格. 那么为什么int型不转换成字符串呢? 运算的优先级和结合顺序在==是从左到右,所以string转int <?phpif(0 == "abc") echo 'ghost!?';if("abc" == "0") echo 'really a ghost!!!';?><?phpif( "abc"==0) echo 'ghost!?';if("abc" == "0") echo 'really a ghost!!!';?>测试了是一样的.所以解释的好像不对. 不神,请楼主认真阅读 PHP手册 数字类型(整形或者浮点型)和字符串比较:字符串转换成数字类型进行比较。两个字符串比较:1,如果两个字符串都是数字字符串,那么将会把这两个字符串转换成数字类型进行比较;2,其他的情况按照字符串的ascii码进行比较; 各位请再仔细的看一下我的程序好吗?.....$t="list23412412423sdfasdf"; //如果$t和$this->thestyle相等if ($t == $this->thestyle){ //输出$this->thestyle var_dump($this->thestyle); //用:进行隔离 echo " : "; //输出$t var_dump($t); exit(); ...... 输出结果是: int(0) : string(22) "list23412412423sdfasdf" 大家看结果:$this->thestyle的输出结果是整型 0而$t的输出结果是字符串 list23412412423sdfasdf我当然知道PHP的严格类型判断(===),但是看我的IF语句,我判断的是 “整型 0” 是否和 “字符串list23412412423sdfasdf”是否相等,如果相等,那么才输出相关的内容。PHP在这里认为“整型 0” 和 “字符串list23412412423sdfasdf” 是相等的,很显然这个判断是个错的。 SORRY我明白了,马上结贴 看看这个 http://www.google.com.hk/ 好生动啊 PHP连接ACCESS数据库的方法总结 关于PHP的表单递交,于变量传递问题 liux 目录下自动生成文件夹, 面向对像的问题 怎样将一个表中的数据一一对应的导入另一个表中 我用命令行方式执行一个PHP程序..怎么让程序执行时马上显示信息...不缓充呢? 在php中如何将图片上传到服务器的MY SQL数据库中。紧急 关于如何用php读取表单数据的问题。 PHP调用外部应用程序,超时的问题…… 像这种网站做一个要多少钱? 请问PHP如何列出一个mssql数据库中的表名
建议你用=== 既判断值等还判断类型一致
在==是从左到右,所以string转int
if(0 == "abc") echo 'ghost!?';
if("abc" == "0") echo 'really a ghost!!!';?><?php
if( "abc"==0) echo 'ghost!?';
if("abc" == "0") echo 'really a ghost!!!';?>
测试了是一样的.
所以解释的好像不对.
两个字符串比较:
1,如果两个字符串都是数字字符串,那么将会把这两个字符串转换成数字类型进行比较;
2,其他的情况按照字符串的ascii码进行比较;
.....
$t="list23412412423sdfasdf";
//如果$t和$this->thestyle相等
if ($t == $this->thestyle){
//输出$this->thestyle
var_dump($this->thestyle);
//用:进行隔离
echo " : ";
//输出$t
var_dump($t);
exit();
......
输出结果是:
int(0) : string(22) "list23412412423sdfasdf"
大家看结果:$this->thestyle的输出结果是整型 0
而$t的输出结果是字符串 list23412412423sdfasdf
我当然知道PHP的严格类型判断(===),但是看我的IF语句,我判断的是 “整型 0” 是否和 “字符串list23412412423sdfasdf”是否相等,如果相等,那么才输出相关的内容。PHP在这里认为“整型 0” 和 “字符串list23412412423sdfasdf” 是相等的,很显然这个判断是个错的。
我明白了,马上结贴