This question already has answers here:
Comparing String to Integer gives strange results

(5个答案)


5年前关闭。




我有以下代码:
$test = 0;
if ($test == "on"){
    echo "TRUE";
}

该代码的结果将是:
TRUE

为什么???我的PHP版本:5.4.10。

最佳答案


$test = 0;
if ($test === "on"){
    echo "TRUE";
}

PHP会将字符串转换为数字进行比较。使用===,将比较值和数据类型。
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

Docs

关于php - PHP中非常奇怪的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35837466/

10-11 12:47
查看更多