PHP будет сообщать об ошибках, предупреждениях и уведомлениях для многих распространенных проблем с программированием и выполнением, и знание того, как обнаруживать и обрабатывать эти ошибки, значительно облегчит отладку.

PHP сообщает об ошибках в ответ на ряд внутренних ошибок. Их можно использовать для сигнализации ряда различных условий, а также отображать и/или регистрировать по мере необходимости.

Каждая ошибка, которую генерирует PHP, включает тип.

Обработка ошибок с помощью PHP

Если обработчик ошибок не установлен, PHP будет обрабатывать любые возникающие ошибки в соответствии с его конфигурацией. Какие ошибки сообщаются, а какие игнорируются, контролируется error_reporting директивой php.ini или во время выполнения, вызывая error_reporting() . Однако настоятельно рекомендуется установить директиву конфигурации, так как некоторые ошибки могут возникнуть до начала выполнения вашего скрипта.

В среде разработки всегда следует устанавливать error_reporting значение E_ALL, так как вам необходимо знать и устранять проблемы, возникающие в PHP. В производственной среде вы можете установить менее подробный уровень, например E_ALL & ~E_NOTICE & ~E_DEPRECATED, но во многих случаях E_ALLэто также уместно, поскольку может обеспечить раннее предупреждение о потенциальных проблемах.

То, что PHP делает с этими ошибками, зависит от двух дополнительных директив php.ini. display_errors определяет, отображается ли ошибка как часть вывода скрипта. Это всегда следует отключать в производственной среде, поскольку она может включать конфиденциальную информацию, такую ​​как пароли базы данных, но часто бывает полезно включить ее в процессе разработки, поскольку она обеспечивает немедленное сообщение о проблемах.

В дополнение к отображению ошибок PHP может регистрировать ошибки, когда log_errors директива включена. При этом любые ошибки будут записываться в файл или системный журнал, определенный параметром error_log. Это может быть чрезвычайно полезно в производственной среде, поскольку вы можете регистрировать возникающие ошибки, а затем создавать отчеты на основе этих ошибок.

Обработчики пользовательских ошибок

Если обработка ошибок PHP по умолчанию неадекватна, вы также можете обрабатывать многие типы ошибок с помощью своего собственного обработчика ошибок, установив его с помощью set_error_handler() . В то время как некоторые типы ошибок не могут быть обработаны таким образом, те, которые могут быть обработаны, могут быть обработаны так, как считает нужным ваш сценарий: например, это можно использовать для отображения пользовательской страницы ошибки для пользователя, а затем отчет более непосредственно, чем через журнал, например, по электронной почте.