从函数返回“错误”的最佳做法

2022-08-30 18:34:04

我有一个函数:

public function CustomerRating() {
     $result = $db->query("...");
     $row = $result->fetch_assoc();

     if($row)
          $output = $row['somefield'];
     } else {
          $output = "error";
     }

     return $output;
}

//somewhere on another page...
if(is_numeric($class->CustomerRating()) {
     echo $class->CustomerRating;
} else {
      echo "There is an error with this rating.";
}

有没有更好的方法来查找错误?在此函数中,如果未返回任何行,则并不意味着本身存在“错误”,它只是意味着无法计算值。当我检查函数的结果时,我觉得在if函数中显示数据之前,有更好的方法来检查返回的数据。最好的方法是什么?我想返回一个“false”,但是在调用函数时如何检查呢?谢谢!


答案 1

(在我看来)有两种常见的方法:

  1. 返回
    许多内置的PHP函数可以做到这一点false

  2. 使用 SPL 例外
    Evolved PHP 框架(Symfony2、ZF2 等)来做到这一点


答案 2

您需要例外情况

public function CustomerRating() {
     $result = $db->query("...");
     $row = $result->fetch_assoc();
     if ($row !== null) {
          return $row['somefield'];
     } else {
          throw new Exception('There is an error with this rating.');
     }
}

// Somewhere on another page...
try {
    echo $class->CustomerRating();
} catch (Exception $e) {
    echo $e->getMessage();
}

推荐