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

mr.*_*ith 2 php

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

<?php
$v = "dav6d";
if($v = "david") {
echo "smith";
}
?>
Run Code Online (Sandbox Code Playgroud)

小智 11

这一行:

if($v = "david") {
Run Code Online (Sandbox Code Playgroud)

正在使用一个赋值(即单个=符号),它将返回$ v的结果"david",这是一个真值.如果你想做一个比较使用=====

  • @ErikPhilips是 - 请参阅[http://www.php.net/manual/en/language.operators.comparison.php ](http://www.php.net/manual/en/language.operators.comparison.php ) (4认同)
  • "[...]将返回一个真值",是的,为了更精确一点,赋值表达式返回赋值,在这种情况下,"david"`这是一个真值. (2认同)

小智 5

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

$v="david"; // This code assign "david" to $v
$v=="david"; // This code compares $v vs "david"
Run Code Online (Sandbox Code Playgroud)