ProfiPHPProfiPHP
Категория: Директивы PHP

Директива Error_reporting

Директива Error_reporting задает уровень протоколирования ошибок. Параметром может быть либо число, представляющее битное поле, или именуемая константа. Для установки настройки во время выполнения используйте функцию Error_reporting.

E_ERROR (1) - Фатальные ошибки времени выполнения. Это неустранимые средствами самого скрипта ошибки, такие как ошибка распределения памяти и другие. Выполнение скрипта в таком случае прекращается.

E_WARNING (2) - Предупреждения времени выполнения (не фатальные ошибки). Выполнение скрипта в таком случае не прекращается.

E_PARSE (4) - Ошибки на этапе компиляции. Должны генерироваться только парсером.

E_NOTICE (8) - Уведомления времени выполнения. Указывают на то, что во время выполнения скрипта произошло что-то, что может указывать на ошибку, хотя это может происходить и при обычном выполнении программы.

E_CORE_ERROR (16) - Фатальные ошибки, которые происходят во время запуска РНР. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются ядром PHP.

E_CORE_WARNING (32) - Предупреждения (не фатальные ошибки), которые происходят во время начального запуска РНР. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются ядром PHP.

E_COMPILE_ERROR (64) - Фатальные ошибки на этапе компиляции. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются скриптовым движком Zend.

E_COMPILE_WARNING (128) - Предупреждения на этапе компиляции (не фатальные ошибки). Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются скриптовым движком Zend.

E_USER_ERROR (256) - Сообщения об ошибках сгенерированные пользователем. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error.

E_USER_WARNING (512) - Предупреждения сгенерированные пользователем. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error.

E_USER_NOTICE (1024) - Уведомления сгенерированные пользователем. Такие уведомления схожи с E_NOTICE, за исключением того, что они генерируются в коде скрипта, средствами функции PHP trigger_error.

E_STRICT (2048) - Включаются для того, чтобы PHP предлагал изменения в коде, которые обеспечат лучшее взаимодействие и совместимость кода. Начиная с PHP 5, но не включены в E_ALL вплоть до PHP 5.4.0.

E_RECOVERABLE_ERROR (4096) - Фатальные ошибки с возможностью обработки. Такие ошибки указывают, что, вероятно, возникла опасная ситуация, но при этом, скриптовый движок остается в стабильном состоянии. Если такая ошибка не обрабатывается функцией, определенной пользователем для обработки ошибок, выполнение приложения прерывается, как происходит при ошибках E_ERROR. Начиная с PHP 5.2.0.

E_DEPRECATED (8192) - Уведомления времени выполнения об использовании устаревших конструкций. Включаются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP. Начиная с PHP 5.3.0.

E_USER_DEPRECATED (16384) - Уведомления времени выполнения об использовании устаревших конструкций, сгенерированные пользователем. Такие уведомления схожи с E_DEPRECATED за исключением того, что они генерируются в коде скрипта, с помощью функции PHP trigger_error. Начиная с PHP 5.3.0

E_ALL (32767) - Все поддерживаемые ошибки и предупреждения, за исключением ошибок E_STRICT до PHP 5.4.0.

Представленные выше значения (как числовые, так и символьные) используются для задания битовой маски, определяющей об ошибках какого типа будет даваться отчет. Вы можете использовать побитовые операторы, чтобы совмещать эти значения для указания определенных типов ошибок. Стоит отметить, что в php.ini допустимы только следующие операторы: '|', '~', '!', '^' и '&'.

Включение E_NOTICE при разработке имеет ряд преимуществ. NOTICE сообщения могут предупреждать о возможных ошибках в коде. Например, использование неинициализированных переменных вызовет подобное сообщение. Это очень удобно при поиске ошибок и экономит время при настройке.

В PHP 5 доступен новый уровень ошибок E_STRICT. Так как E_STRICT не входит в состав E_ALL, необходимо явно включать этот уровень ошибок. Включение E_STRICT при разработке также имеет свои преимущества. STRICT сообщение предлагают подсказки, которые могут помочь обеспечить лучшую функциональную и обратную совместимость вашего кода.

Использование PHP констант за пределами PHP, например в файле .htaccess, не имеет смысла, так как в таких случаях нужны целочисленные значения (integer). Более того, с течением времени будут добавляться новые уровни ошибок, а максимальное значение константы E_ALL соответственно расти. Поэтому в месте, где предполагается указать E_ALL, лучше поставить большое целое число, чтобы перекрыть все возможные битовые поля. Таким числом может быть, например, 2147483647 (оно включит все возможные ошибки, не только E_ALL).

Директива Error_reporting относиться к режиму PHP_INI_ALL, поэтому значение может быть установлено отовсюду.

Пример использования в файле php.ini:
error_reporting = 2147483647

Добавить комментарий

Имя:
Текст комментария: