Собака в PHP
На повестке дня 2 вопроса:
1) Для чего используется собака в PHP?
2) Можно ли использовать собаку для отключения вывода ошибок в PHP?
Для тех, кто хочет сразу получить ответ:
1) Отключает вывод ошибок при выполнении последующей конструкции.
2) Можно, но не нужно.
Теперь разберём почему
Во-первых, как говорят многие специалисты (мы им в этом поверим) выполнение скрипта существенно замедляется при использовании собаки.
Во-вторых, вывод ошибок отключается не только для пользователя, но также ошибки экранированные собакой никогда не попадут в логи, а это значит, что отлаживать скрипт использующий собаки вам придётся мучительно и долго.
Как надо делать?
Если речь идёт о продакшене, то идеальный вариант это установленное значение error_reporting в E_ALL, при этом нужно установить значение display_errors в off, а error_log устанавливаем в syslog или просто пишем путь к файлу куда хотите писать логи. В таком режиме включается запись ошибок в лог-файл и никакие ошибки не будут выводиться на странице.
Если речь идёт о тестинг-среде, то error_reporting устанавливаем в E_ALL и display_errors в true - это будет выводить все ошибки прямо на странице.
Что делать если ошибки могут возникать в процессе работы скрипта?
Использовать try-catch и эксепшны (Exception). За этим в документацию PHP. :)