PHP - 这个if语句是什么意思?

时间:2016-10-10 03:27:48

标签: php

我使用PHP大约3个月看到很多语法 但无法理解这是什么意思。

if($foo = 'somevalue') //or if($foo = $somevalue)
{

}

我只看到($ foo)这意味着if($ foo == TRUE)。或者if($ foo ==,>,< somevalue)
但在这种情况下,如果$ foo持有一些值???

4 个答案:

答案 0 :(得分:2)

您只需同时将值分配给$foo并在if语句中对其进行评估。因此,如果$foo的值对应false,则if语句中的代码将不会执行。举个例子:

if ($foo = 12) { // foo's value is now 12
    // code here would execute
}
echo $foo; // 12

if ($foo = 0) { // foo's value is now 0
    // would not execute
}
echo $foo; // 0

答案 1 :(得分:2)

许多人会说=分配价值。但这在if语句中也很有用

if语句if($foo = 'somevalue')通常很糟糕,因为it will always evaluate to true。但if($foo = $somevalue)有点好一点,因为它与检查数据库查询结果时所看到的相似,例如

if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) 

如果$mysqli->query成功运行if语句计算结果为true,因为函数的成功retunr结果不被视为FALSE,并且在if语句中,您可以期望$result可用于其他mysqli_*功能。

但是如果$mysqli->query不成功,它将返回false并且if语句的计算结果为false,您可以设置else语句来输出错误。你会得到相同的结果

$somevalue = $mysqli->query("SELECT Name FROM City LIMIT 10")
if($foo = $somevalue)

但是当你可以一起跳过$somevalue时,你有点浪费时间做这样的额外行

答案 2 :(得分:0)

somevalue语句只是

  • 返回true并将字符串$foo分配给somevalue
  • 返回false,因为无法将$foo分配给if

在很多情况下,编写$foo语句时出现错误,有人可能想要检查somevalue的值是否为字符串if ($foo == 'somevalue') //$somevalue 。< / p>

要正确评估,需要以下

=

==将分配新值,$a = 2; if ($a = 3) { echo "True"; } else { echo "False"; } //Output: True 比较两个值。有关详细信息,请参阅this question

答案 3 :(得分:0)

如果您有单个=符号,则表示赋值运算符。即if条件总是返回true。

$a = 2;
if ($a == 3) {
    echo "True";
} else {
    echo "False";
}

//Output: False

然而,如果你使用逻辑运算符==,它将比较这两个值并返回布尔值true / false。

{{1}}