为什么这个表达式在 PHP 中的计算结果为 true:
0 == " UNKNOWN"
因为字符串被强制转换为一个 int 进行比较,而该字符串的 int 值为 0。
您正在对两个变量进行松散比较;使用该运算符的规则包含在松散比较表中。
==
将对您的一个值进行类型转换以匹配另一个值。
(int)" UNKNOWN"
返回 0
(int)0
返回 0
所以
0==" UNKNOWN"
是true
$string == " UNKNOWN";
var_dump((int)$string); //gives 0
所以它评估为真。