2

为什么这个表达式在 PHP 中的计算结果为 true:

0 == " UNKNOWN" 
4

4 回答 4

3

因为字符串被强制转换为一个 int 进行比较,而该字符串的 int 值为 0。

http://php.net/manual/en/language.types.type-juggling.php

于 2013-10-15T04:06:50.947 回答
2

您正在对两个变量进行松散比较;使用该运算符的规则包含在松散比较表中

于 2013-10-15T04:08:38.160 回答
2

==将对您的一个值进行类型转换以匹配另一个值。

(int)" UNKNOWN"返回 0

(int)0返回 0

所以

0==" UNKNOWN"true

于 2013-10-15T04:08:46.827 回答
0
$string == " UNKNOWN";
var_dump((int)$string); //gives 0

所以它评估为真。

于 2013-10-15T04:08:30.857 回答