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

php中字符串判断疑问

WBOY
WBOYOriginal
2016-06-23 13:38:44908browse

如下:为何返回为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比较就不等了

数字与字符串比较时, 先尝试将字符串转换为数字, 再比较, 一个不能转换为数字的字符串, 转换结果为0

字符串与数字相比较时,字符串会转换成数字参与比较。‘name’ 转化成数字是0 ,所以就相等了。

当字符串和资源与数字像比较时, 将字符串和资源转换成数字,按普通数学比较

php会自动转换被比较的类型! 
你前面是0整型  后面是 ‘name’字符串   php会将字符串转换成数字 但name无法转换成数字 所以只能返回0 0=0 !
如果你比较的是0和‘123’ 那就不相等了!

var_dump((int)'123');var_dump((int)'name');

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