За уровень обработки ошибок в PHP отвечает директива error_reporting
конфигурационного файла php.ini
. Данный параметр определяет типы ошибок, о которых PHP информирует выводом текстового сообщения в окно браузера.
Возможные значения директивы
Уровень ошибки | Константа | Описание ошибки |
---|---|---|
1 | E_ERROR | Ошибки обычных функций (критичные ошибки) |
2 | E_WARNING | Обычные предупреждения (не критичные ошибки) |
4 | E_PARSE | Ошибки синтаксического анализатора |
8 | E_NOTICE | Замечания (аномалии в коде, возможные источники ошибок — следует отключить при наличии русского текста в коде, так как для интернациональных кодировок не обеспечивается корректная работа). |
16 | E_CORE_ERROR | Ошибки обработчика |
32 | E_CORE_WARNING | Предупреждения обработчика |
64 | E_COMPILE_ERROR | Ошибки компилятора |
128 | E_COMPILE_WARNING | Предупреждения компилятора |
256 | E_USER_ERROR | Ошибки пользователей |
512 | E_USER_WARNING | Предупреждения пользователей |
1024 | E_USER_NOTICE | Уведомления пользователей |
E_ALL | Все ошибки |
Вышеуказанные значения (цифровые или символьные) используются для построения битовой маски, которая специфицирует выводимое сообщение об ошибке. Вы можете использовать битовые операции для маскирования определённых типов ошибок. Обратите внимание, что только ‘|’, ‘~’, ‘!’ и ‘&’ будут понятны в php.ini и что никакие битовые операции не будут понятны в php3.ini.
В PHP 4 значением по умолчанию для error_reporting
будет E_ALL & ~E_NOTICE
, что означает отображение всех ошибок и предупреждений, которые не имеют уровень E_NOTICE-level. В PHP 3 значение по умолчанию — E_ERROR | E_WARNING | E_PARSE
означает то же самое.
Заметьте, однако, что, поскольку константы не поддерживаются в PHP 3 в файле php3.ini, установка error_reporting
должна выполняться цифрами; то есть 7 по умолчанию.
Настройка при помощи php.ini
Параметр error_reporting позволяет устанавливать несколько уровней, используя побитовые флаги. К примеру, уровень:
error_reporting = E_ALL & ~E_NOTICE
позволяет выводить все ошибки, за исключением замечаний.
А для того чтобы показывать только ошибки (исключая предупреждения и замечания), директива должна быть настроена так, как показано ниже:
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
Настройка при помощи .htaccess
Включаем вывод ошибок в окно браузера и устанавливаем нужный уровень.
<br /> php_flag display_errors On<br /> php_value error_reporting E_ALL<br />
Настройка при помощи PHP
Включаем вывод ошибок в окно браузера и устанавливаем нужный уровень.
<?php error_reporting(E_ALL); ini_set("display_error", true); ini_set("error_reporting", E_ALL); ?>
Ссылки
- Функция error_reporting
- Директива error_reporting файла php.ini
Источник: https://www.kobzarev.com/programming/php-error-levels/