我使用PHP大约3个月了,看到了很多语法。
但不明白这是什么意思。
if($foo = 'somevalue') //or if($foo = $somevalue)
{
}
我只看到if($foo),这意味着if($foo == TRUE)。或者if($foo ==,>,<somevalue)>
但在这种情况下,如果$foo保存一些值??
您只是同时将值赋给$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
很多人会说=
赋值。但是,这在if语句中也很有用
if语句if($foo = 'somevalue')
通常是不好的,因为它总是求值为true。但是if($foo = $somevalue)
稍微好一点,因为它类似于检查数据库查询结果时看到的内容,例如使用
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10"))
如果$mysqli->query
成功运行if语句,则计算结果为true,因为函数的成功返回结果不被认为是FALSE,并且在if语句中,您可以期望$result
可用于其他mysqli_*
函数。
但是,如果$mysqli->query
不成功,它将返回false,并且if语句的计算结果为false,您可以设置else语句来输出错误。如果执行
$somevalue = $mysqli->query("SELECT Name FROM City LIMIT 10")
if($foo = $somevalue)
但是这样做会浪费时间因为你可以直接跳过$somevalue
这个if
语句将简单地
- 返回true并将字符串
somevalue
赋值给$foo
- 返回false,因为
somevalue
不能分配给$foo
在很多情况下,这是写if
语句的错误,在这里有人可能想检查$foo
的值是否为字符串somevalue
。
要正确地求值,需要下面的
if ($foo == 'somevalue') //$somevalue
=
会赋一个新值,==
会比较两个值。
当您有单个=符号时,它表示赋值操作符。即if条件总是返回true。
$a = 2;
if ($a = 3) {
echo "True";
} else {
echo "False";
}
//Output: True
然而,如果使用逻辑运算符==,它将比较两个值并返回布尔值true/false。
$a = 2;
if ($a == 3) {
echo "True";
} else {
echo "False";
}
//Output: False