一个简单的 IF 总是返回 true 是什么


What does a simple IF always return true?

为什么下面的代码总是返回true?

<?php
$v = "dav6d";
if($v = "david") {
echo "smith";
}
?>

这一行:

if($v = "david") {

使用赋值(即单个=符号),它将返回$v的结果,"david" ,这是一个真值。如果要进行比较,请使用=====

if($v = "david")正在分配,而不是比较

$v="david"; // This code assign "david" to $v
$v=="david"; // This code compares $v vs "david"

因为您将$v设置为在 if 语句中"david"。请改用==

<?php
$v = "dav6d";
if($v == "david") {
  echo "smith";
}
?>

为了避免此类类型错误,请在第二个位置(比较运算符的右侧(此处 ' == '))使用变量,如下所示

if("david"==$v) {
echo "smith";
}

它有助于生成语法错误消息,以防万一,当您错误地输入" ="而不是" =="