netbeans 这是不是“嵌套块太多”?

vyu0f0g1  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(144)

Netbeans不断地给我“嵌套块太多”的恼人通知,并建议我引入一个新函数,但下面的做法真的很糟糕吗?

$sql = 'SELECT * FROM table';
$sth = $dbh->prepare($sql);
if ($sth->execute())
  {
  if ($sth->rowCount())
    {
    while ($row = $sth->fetch())
      {
      // Read the database here
      }
    }
  else
    {
    // Handle no result case here
    }
  }
else
  {
  // Catch query failure here - Is this bit necessary if I'm confident the query is OK?
  }

因此,每次编写SQL查询时,我似乎已经达到了Netbeans建议的嵌套块限制--我能安全地使这个更流畅吗?我知道这只是一个编码“提示”,但我想检查一下我没有做任何愚蠢的事情:)

bqucvtff

bqucvtff1#

当然,这并不太糟糕,但是,根据您的喜好,您可以首先处理“error”情况,避免嵌套的if语句,如下所示:

$sql = 'SELECT * FROM table';
$sth = $dbh->prepare($sql);

if (!$sth->execute) {
  throw new Exception("Things went bad with the query!");
}

if (!$sth->rowCount()) {
  // either throw an exception if you always expect to have results
  // or handle the case in whatever way you need
}

while ($row = $sth->fetch()) {
  do_something_nice($row);
}

如果有很多事情可能出错,或者有很多方法来处理一个特定的情况,那么这将是一个更好的方式,而不是有if() { if() { if() { if() { ... }}}}混乱。

ikfrs5lh

ikfrs5lh2#

您也可以在“工具/选项/编辑器”中的“提示”选项卡中更改或禁用警告,语言PHP“函数中的嵌套块”。

相关问题