只是想知道是否有必要在我的codeigniter模型函数中使用else {return false;}
或if () {}
就足够了,默认情况下它会在失败的情况下返回false?
控制器:
if ($this->model_a->did()) {
$data["results"] = $this->model_a->did();
echo json_encode($data);
}
模型:
public function did()
{
//some code here
if ($query && $query->num_rows() > 0) {
return $query->result_array();
} else {
return false;
}
}
答案 0 :(得分:1)
我认为这更像是一个PHP问题,而不是CodeIgniter问题。您可以通过调用模型方法并对结果进行var_dump来轻松测试。如果您没有从PHP中的方法返回任何内容,则返回值为NULL。
答案 1 :(得分:1)
尽管我在CI中有经验,但返回false并不是一个加分点,因为如果你在这里返回false,那么你需要在控制器中有一个条件,这对你应该这样做是没用的,至少可以节省一些代码行
if ($query && $query->num_rows() > 0) {
return $query->result_array();
} else {
return array();
}
因此返回一个数组将使您免于许多其他错误,例如类型错误。
答案 2 :(得分:1)
在您的控制器中 - 首先测试负面情况 - 如果模型中的方法没有返回任何内容
if ( ! $data["results"] = $this->model_a->did() ) {
$this->showNoResults() ; }
else { echo json_encode($data); }
所以说 - 如果没有回来 - 然后转到showNoResults()方法。 如果结果确实回来,则将其分配给$ data
然而 - 在模型中的这种情况下我也会把ELSE返回false - 有些人会说它的额外代码但是对我来说它更清楚发生了什么。与总是返回一些价值的方法相比。