为什么FALSE,字符串'0',数字0和NULL除了null和字符串0外都彼此相等(==)?

时间:2019-07-19 13:58:28

标签: php comparison-operators

我正在用php中的空值进行实验,而我真的无法解决这个比较问题。我定义了以下变量:

$a = 0;
$b = '0';
$c = false;
$d = null;

当我使用等价运算符(==)时,除变量$ b和$ d外,它们都相等。有人可以解释一下为什么吗?我阅读了有关类型变戏法和类型转换的文档,但我仍然不明白为什么。 False和'0'相等,false和null相等,但null和'0'不相等。里面没有逻辑。

1 个答案:

答案 0 :(得分:0)

我找到了答案。比较null和string时,PHP将NULL转换为空字符串。所以“”!=“ 0”