处理故障的常用方法是:
$result = mysql_query("SELECT * FROM table1") or myFailureFunction();
结果是当查询失败时,会调用
myFailureFunction()
。是否有以下代码不完全相同的情况?
$result = mysql_query("SELECT * FROM table1");
if(!$result)
{
myFailureFunction();
}
笔记:
or
的 bool(boolean) 性质。我想知道的是,or
是否对返回结果进行操作?问题:PHP: 'or' statement on instruction fail: how to throw a new exception? 最佳答案
在您的情况下,由于short circuit evaluation,它们是完全相同的,但是如果返回null或其他错误值,则将有所不同。注意:
function f(){return false;}
function w(){return "w";}
$a = f() or w();
echo isset($a);
// 1 (true). $a === FALSE!
现在,请注意缺少回报的情况:
function f(){}
function w(){return "w";}
$a = f() or w();
echo isset($a);
// nothing (false)
关于php - 'or'是否被视为对语句返回的 bool 检查?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7244915/