@phpcoder81

В чем отличие return bool, return array и Exception?

Мужики, вот что хотел обсудить.

1. Раньше методы возвращали и true и false.
if($obj->method()){
  echo 'Все хорошо';
}else{
  echo 'Ошибка';
}


2. Далее, bool заменил на Exception
try{
  $obj->method();
  echo 'Все хорошо';
}catch(AppException $e){
  echo $e->getMessage();
}


3. Еще у меня, когда-то метод возвращал (string) successful, либо текст ошибки
$result = $obj->method();
if($result == 'successful'){
  echo 'Все хорошо';
}else{
  echo $result;
}


И я, честно, не пойму, какой из этих способов правильный. Если первый отдавал ошибку или нет (без пояснения), то два последующих, уже вроде как справляются на все 100%.
Можете объяснить, как должно быть в идеале)
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 4
Правильный - try{}catch(){}. Соответсвенно класс должен бросать Exception в любой непредвиденной ситуации, а код. который работает с этим классом, должен все исключения обрабатывать.
Ответ написан
amark
@amark
rush less, feel more
Все три случая по-прежнему применяются. Всё зависит от ситуации.

Вот хорошая статья, где описывается принцип, когда что возвращать чем отличается ошибка от exception.
Ответ написан
Комментировать
wagoodoogoo
@wagoodoogoo
prestashop, webix, phalcon, vue, slim, craft cms
Вот ещё одна хорошая статья на тему
Ответ написан
Комментировать
seganim
@seganim
PHP-программист, программный инженер
Можно возвращать код ошибки и интерпретировать. 0 - нет ошибок, 1 и далее -ошибки в соответствии с легендой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы