gpt4 book ai didi

php - 'or' 是否被视为对语句返回的 bool 检查?

转载 作者:行者123 更新时间:2023-12-02 08:52:51 26 4
gpt4 key购买 nike

处理失败的常见方法是:

$result = mysql_query("SELECT * FROM table1") or myFailureFunction();

结果是当查询失败时,myFailureFunction() 被调用。

以下代码是否存在不完全相同的情况?

$result = mysql_query("SELECT * FROM table1");
if(!$result)
{
myFailureFunction();
}

注释:

  1. 我已经测试了连接失败、SQL 语法失败和空结果,它似乎对所有这些都有效。我想知道是否有任何情况它不起作用。
  2. 我知道有更好的方法来处理失败。
  3. 有一个问题涉及 or 的 bool 性质。我想知道的是, 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com