一个简单的IF总是返回真实的是什么?

时间:2013-09-05 23:40:38

标签: php

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

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

4 个答案:

答案 0 :(得分:11)

这一行:

if($v = "david") {

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:2)

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

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

如果您错误地将“=”改为“==

,则会产生语法错误消息。