Home  >  Article  >  Backend Development  >  php中字符串判断疑义

php中字符串判断疑义

WBOY
WBOYOriginal
2016-06-13 12:16:08803browse

php中字符串判断疑问
如下:为何返回为true?
if(0 == 'name'){
echo true;
}else{
echo false;
}

把0换做其他数字则返回为false
if(1== 'name'){
echo true;
}else{
echo false;
}
------解决思路----------------------
这个是Php的一个解析机制问题,
if(1 == '1name'){
echo true;
}else{
echo false;
}

这样就是true
------解决思路----------------------
貌似是 
拿字符串和数字来比较,会把字符串给转成数字(转为0),所以相等
和1比较就不等了
------解决思路----------------------
字符串与数字相比较时,字符串会转换成数字参与比较。‘name’ 转化成数字是0 ,所以就相等了。
------解决思路----------------------
当字符串和资源与数字像比较时, 将字符串和资源转换成数字,按普通数学比较
------解决思路----------------------
php会自动转换被比较的类型! 
你前面是0整型  后面是 ‘name’字符串   php会将字符串转换成数字 但name无法转换成数字 所以只能返回0 0=0 !
如果你比较的是0和‘123’ 那就不相等了!

<br />var_dump((int)'123');<br />var_dump((int)'name');<br />

Statement:
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