PHP中字符串和数字 0 比较为什么返回true?

PHP中字符串和数字 0 比较为什么返回true?


波斯汪
浏览 872回答 4
4回答

森林海

我是这么理解的:if($str==0),字符串和数字比较是否相等, 相当于 把$str 字符串隐性转换为数字,然后再比较,相当于 if( intval($str) == 0 ) 。if($str==0) 判断 和 if( intval($str) == 0 ) 是等价的,而和 if ($str) 是不一样的。if ($str) 可以判断 $str值有没有被初始化。有没有付值,只要付值,就返回true。当然你也可以使用 $str="字符串";if($str===0){ echo "返回了true.";} ,就是 判断 $str的数据类型 和值 都和0的值 数据类型一样,才可以返回true

一只萌萌小番薯

if($str=="0")你这样,他就不会是ture了字符串和整型不好对比.而且他会把字符串的第一个个转换.然后就为true了

神不在的星期二

$str = "25字符串"此事$str==0 就会返回false为什么?还是那句话自己看手册字符串转整数的内容 我之前在别的地方说过很多 不想再说了

拉丁的传说

(1)对于字符串变量来说,equal比较的两边对象的内容,所以内容相同返回的是true。至于你没问到的“==”,比较的是内存中的首地址,所以如果不是同一个对象,“==”不会返回true 而是false。举个简单的例子,String s1="abc", s2="abc";String s3 =new String("abc");String s4=new String("abc");s1==s2 //true,s1.equals(s2) //true,s3.equals(s3) //true,equal比较的是内容s3==s4//false,==比较的是首地址,所以是false
打开App,查看更多内容
随时随地看视频慕课网APP