2

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

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

4 回答 4

11

这一行:

if($v = "david") {

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

于 2013-09-05T23:44:57.107 回答
5

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

$v="david"; // This code assign "david" to $v
$v=="david"; // This code compares $v vs "david"
于 2013-09-06T00:14:58.910 回答
3

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

<?php
$v = "dav6d";
if($v == "david") {
  echo "smith";
}
?>
于 2013-09-05T23:44:35.863 回答
2

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

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

当您错误地放置 ' =' 而不是 ' =='时,它会通过生成语法错误消息来提供帮助

于 2013-11-06T10:35:46.123 回答