处理故障的常用方法是:'或'被视为返回语句的布尔检查吗?
$result = mysql_query("SELECT * FROM table1") or myFailureFunction();
的结果是,当查询失败,myFailureFunction()
被调用。
有没有什么情况下,下面的代码不完全一样?
$result = mysql_query("SELECT * FROM table1");
if(!$result)
{
myFailureFunction();
}
注:
- 我曾与连接失败,SQL语法失败和空测试结果,似乎他们所有的工作。我想知道是否有任何情况下,它不会工作。
- 我知道有很多更好的方法来处理失败。
- 有一个问题解决了
or
的布尔性质。我想知道的是,or
是在复活的结果还是别的东西上运行?问题:PHP: 'or' statement on instruction fail: how to throw a new exception?
感谢大家的好的答案。在这种情况下,“短路评估”的使用并没有真正发生,但总体上是有意义的。下面关于'null'和'false'返回可能性差异的讨论正是我所期待的。谢谢 –