За уровень обработки ошибок в 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/