@AlexandrMa

Почему некоторые методы возвращают разный тип данных?

Очень часто встречается такая конструкция
public function test(){
  if(empty($this->id)){
    return false;
  }
  return $this->getRows();
}

Это ошибка или такая практика нормальная? Ведь можно: а) выбросить исключение если пустой $this->id. б) сделать return [];
  • Вопрос задан
  • 69 просмотров
Решения вопроса 2
Adamos
@Adamos
Это нормальная практика старого РНР. Сейчас попахивает и делать так не стоит.
Вариант Б может ввести в заблуждение. Пустой результат, отсутствие результата и ошибка, не позволяющая получить результат - это три разных результата.
Ответ написан
@Mellorn
Как уже написали, нужно думать что именно вы делаете и исходить из конкретных требований бизнес логики. Ну, и без противоречий человеческой логике.

Возвращать false в случае ошибки - плохо. И да, это наследие раннего php. В описаниях многих стандартных php-функций мы встречаем: возвращает что-то там в случае успеха, или false в случае ошибки. Но так делать не стоит.
В случае ошибки - бросаем исключение.

Например, получаем данные пользователя по ID.
Если получить результат не удалось (именно не удалось) - exception.
Если всё отработало корректно, но юзера с таким ID не существует, можно вернуть null. А уже в вызывающем метод коде выбросить какой-нибудь NotFoundHttpException например. Или ещё каким-либо образом обработать отсутствие результата.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы