在PHP中,我经常看到以下代码:
$result = mysql_query($query) or die();
我来自Python,我知道这应该可以工作,因为or
在布尔环境下返回第一个值如果它是真的,否则返回第二个值(请参见此文)。
但是当我在PHP中尝试上述技巧时,却无法奏效,例如在另一个上下文中:
$name = "John Doe";
echo $name or "Anonymous";
or
不会返回第一个值("John Doe"),它会返回1。为什么这在mysql_query()结果中有效,但在其他情况下无效?在mysql_query()情况下使用它是否不好(忽略我没有向用户返回有用的错误信息)?
printf
等打印函数一起工作,或者是同样的问题,因为它会产生输出?它是一个函数,所以应该可以工作,对吗? - Fidi=
是一个函数,但or
是一个运算符?我本来以为=
也是一个运算符。此外,这是错误的。die()
函数在or
之前不会被执行。 - rjmunroprintf()
是一个返回打印字节数的函数,所以它会类似于mysql_query()
调用运行。 - BoltClock=
是赋值运算符。它不是一个函数,但在PHP中,它还比or
运算符具有更高的优先级。我在我的编辑中进行了澄清。 - BoltClock