我有这个代码:
$test = 0;
if ($test == "on"){
echo "TRUE";
}
Run Code Online (Sandbox Code Playgroud)
此代码的结果将是:
TRUE
Run Code Online (Sandbox Code Playgroud)
为什么???我的PHP版本:5.4.10.
如果将数字与字符串进行比较,或者比较涉及数字字符串,则每个字符串都会转换为数字,并以数字方式进行比较。这些规则也适用于 switch 语句。当比较为 === 或 !== 时,不会发生类型转换,因为这涉及比较类型和值。
$test = 0;
if ($test === "on"){
echo "TRUE";
}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |