Просто интересно, нужно ли использовать else {return false;}
в моих функциях модели codeigniter или 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;
}
}
в вашем контроллере - сначала проверьте отрицательное состояние - если из метода в вашей модели ничего не вернулось
if ( ! $data["results"] = $this->model_a->did() ) {
$this->showNoResults() ; }
else { echo json_encode($data); }
так что, говоря - если ничего не вернулось - тогда перейдите к методу showNoResults(). Если результаты вернулись, то их присвоили $ data
Тем не менее - в этой ситуации в модели я бы также поставил ELSE return false - некоторые люди сказали бы свой дополнительный код, но для меня он делает более ясным, что происходит. Versus методы, которые всегда возвращают некоторое значение.
Поскольку у меня есть опыт в возврате CI, значение false не является плюсом, потому что если вы вернете false здесь, тогда вам нужно вернуть условие в контроллер, который бесполезен, вы должны делать это, так как это сэкономит вам хотя бы некоторый код строк
if ($query && $query->num_rows() > 0) {
return $query->result_array();
} else {
return array();
}
поэтому возврат массива спасет вас от многих других ошибок, таких как ошибка типа.
Я думаю, что это скорее вопрос PHP, чем вопрос CodeIgniter. Вы можете легко проверить это, вызвав методы модели и var_dump-ing результат. Если вы не возвращаете ничего из метода в PHP, возвращаемое значение равно NULL.