Задать вопрос

Как осуществлять подавление ошибок в PHP?

Я часто вижу, что пишут примерно такой код.
if(isset($arr['a']) && isset($arr['a']['b']) && isset($arr['a']['b']['c'])) {
    $v = $arr['a']['b']['c'];
}
else {
    $v = null;
}

Но ведь тоже самое, можно написать компактнее, воспользовавшись подавлением ошибки доступа к элементам массива. В случае ошибки будет возвращен null.
$v = @$arr['a']['b']['c'];
Почему многие предпочитают первый способ? Религия не позволяет использовать подавление ошибок даже для минимального выражения? Или есть еще какие-то причины?
  • Вопрос задан
  • 3148 просмотров
Подписаться 4 Оценить 1 комментарий
Ответ пользователя catanfa К ответам на вопрос (6)
catanfa
@catanfa
вот здесь автор предлагает несколько решений, объясняет подводные камни nikic.github.io/2014/01/10/The-case-against-the-if...

а если начать использовать @, то можно потерять действительно нужные ошибки и отладка станет очень тяжелой. Представьте, ничего плохого не произойдёт, если вы одну-единственную переменную в проекте назовёте $a;Но если таких переменных будет много, код станет невыносимым. Здесь похоже такая же логика.
Ответ написан
Комментировать