0 == 'Y'
if(0 == 'Y'){
echo 111;
}
输出 111
If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically.
数字和字符串比较,字符串会被转换为数字,Y
不含任何的的有效数字字符,因此被转换成 0
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true
因为当数字与字符串比较的时候,字符串会被转换为数字。所以在0和Y比较的时候,首先会把Y进行转换成数字,也就是intval('Y') -> 0 也就是转换为0了。然后 0 == 0 是成立的。固然是输出111。
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.1k 阅读
1 回答1.2k 阅读
php里面
==
的比较松散,数字类型与字符串类型比较,字符串会转成数字类型"123abc"
会转成123
,而'abc123'
则会转成空,空即是0
。具体看下这个吧