PHP解释字符串“;现金”;作为零


PHP interprets string "cash" as zero

这太疯狂了。我在写的一个应用程序中发现了这个。以下代码将返回"是":

<?php
$var = 0;
if ($var == 'cash') echo 'YES';
else echo 'WEIRD';
?>

为什么???零如何解释为等于"现金"???

比较数字和字符串时,字符串会转换为数字。当您将字符串"cash"转换为数字时,结果为零。您可以使用严格的比较(===),因此不仅可以比较值,还可以比较类型,并且不会涉及类型转换。

您正在尝试将整数与字符串进行比较。

我会使用===运算符进行严格比较