任何人都可以解释为什么浮动0是空的?下面的代码将显示“怪异”
$empty = (float)"0";
if($empty == "")
echo "weird";
另一方面,如果我使用下面的代码,它将永远不会显示“怪异”。
$empty = (float)"0.01";
if($empty == "")
echo "weird";
答案 0 :(得分:4)
这是因为在PHP中,以下表达式是正确的:
0 == ""
0.0 == ""
不因为$empty
这里是空字符串""
。
您可以使用===
执行类型相等检查,并且这些表达式将按预期显示为false:
0 === ""
0.0 === ""
答案 1 :(得分:0)
这根本不奇怪,这是预期的。请记住,在PHP 0
中评估为FALSE,空字符串也是如此。为了避免这种情况,使用===
测试严格的相等性(a === b表示“a = = b并且我比较苹果与苹果”,而a == b表示“做这些事情有相同的价值?“(如果我比较苹果和山羊,这无关紧要))
试试这个:
$empty = (float)"0";
if($empty === "")
echo "weird";
答案 2 :(得分:0)
因为这是PHP的松散比较。 http://php.net/manual/en/types.comparisons.php