为什么这个表达式在 PHP 中的计算结果为 true:
0 == " UNKNOWN"
因为字符串被强制转换为 int 进行比较,并且该字符串的 int 值为 0。
请参阅 http://php.net/manual/en/language.types.type-juggling.php
您正在两个变量之间进行松散比较;松散比较表中涵盖了使用该运算符的规则。
==
将类型转换其中一个值以匹配另一个值。
(int)" UNKNOWN"
返回 0
(int)0
返回 0
所以
0==" UNKNOWN"
true
$string == " UNKNOWN";
var_dump((int)$string); //gives 0
所以它的计算结果为 true。