关于使用PHP进行类型比较
总结
根据上述描述,据说即使PHP中进行类型比较的目标类型不同,也会变为TRUE。
https://www.php.net/manual/ja/migration80.incompatible.php
因为0 == “0”会变为TRUE,所以如果要验证类型匹配,需要将其改为0 === “0”。
实践(PHP)
我用PHP写了一个简单的处理操作。
真的0 == “0”会成为true。
<?php
if (0 == "0") {
echo "true";
} else
echo "false";
?>
実行結果
% php test.php
true
下面的代码将试图执行。
只有一个变更点,即「if (0 == “0”)」被改为「if (0 === “0”)」。
<?php
// 比較対象の型も検証する
if (0 === "0") {
echo "true";
} else
echo "false";
?>
実行結果
% php test.php
false
我已经确认进行类型验证会得到false的结果。
使用 (Ruby) 进行实践
以Ruby而言,”0 == “0””无法将数字与字符串进行比较,因此结果为false。
这是预期的结果。
if 0 == "0" then
puts "true"
else
puts "false"
end
実行結果
% ruby test.rb
false
实际应用(Python)
在Python中,因为”0″和0是不同的类型,所以”0 == “0””的结果是false。这也是预期的结果。
if 0 == "0":
print("true")
else:
print("false")
% python test.py
false
总结
PHP与Ruby或Python的设计理念似乎不同。
PHP只要与比较对象相符,就会将数字0和字符串0都视为true。