[英]Why PHP condition getting true even if i am checking equal to
<?php
$test = "-3,-13";
if ($test == -3) {
echo "yay";
} else {
echo "nay";
}
?>
为什么它总是通过 if 条件而不是 else 条件? 我是 php 新手,所以不知道这里发生了什么。
字符串被转换为整数"-3, 46, blala"
-> -3
,然后评估条件。
使用===
运算符来避免转换。
大多数时候,您不想让 php 在您的位置进行转换(安全问题)。 相反,请求被拒绝。
正如 PHP 文档所说
Example Name Result
$a == $b Equal TRUE if $a is equal to $b after type juggling.
$a === $b Identical TRUE if $a is equal to $b, and they are of the same type.
当我们将一个数字与一个字符串进行比较时,该字符串被转换为一个数字,并以数字方式进行比较。
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
https://www.php.net/manual/en/language.operators.comparison.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.