比较奇怪的行为0 =='一个'

时间:2017-04-24 13:32:40

标签: php

我刚刚发现了PHP if子句

的奇怪行为
var_dump((bool)0);
var_dump((bool)"one");
var_dump(0 == "one");

打印

bool(false) bool(true) bool(true)

文档说“表达式被评估为其布尔值”,因此布尔值0false"one"true所以{{1}的结果应该是0 == "one",但它是false

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

由于您使用整数"one"

进行比较,因此0会转换为整数0
  

如果您将数字与字符串进行比较或比较涉及数字字符串,则每个字符串都会转换为数字,并且数字会进行比较。

点击此处:http://php.net/manual/en/language.operators.comparison.php