在PHP if语句中,当我比较一个变量时,我需要使用两个==符号.例如,
if($foo == 'bar'){
//Run code
}
Run Code Online (Sandbox Code Playgroud)
但如果我要使用这样的等号:
if($foo = 'bar'){
//Run code
}
Run Code Online (Sandbox Code Playgroud)
这实际上会设置$foo变量.
为什么你需要在if语句中设置这样的变量?我想不出一个有用的实例,而且我所说的许多程序员都有同感.
有没有理由让PHP允许您以这种方式设置变量?
测试返回错误的函数的结果:
if (($err = some_function())) {
echo "Error: " . $err;
}
Run Code Online (Sandbox Code Playgroud)
PHP 与 C 一样,允许将任何表达式写入 if 条件。
这可以是这样的表达式:
if(!$db=new database()) die("NO DATABASE CONNECTION");
Run Code Online (Sandbox Code Playgroud)
但它的背景是表达式$a="abc"以不同的方式求值:
if($a)因此表达式的计算结果为 if(true),因为运算符的优先级表使表达式成功。这不是 PHP 的错误,而是 TRUE/FALSE 的定义以及如何评估事物的错误。
这也可以在循环中使用,如循环表达式的另一个答案所示$db->fetch()