error_reporting
Функция error_reporting() задает значение директивы error_reporting во время выполнения. В PHP есть много уровней ошибок. Используя эту функцию, можно задать уровень ошибок времени выполнения скрипта, которые попадут в отчет. Если необязательный аргумент level не задан, error_reporting() вернет текущее значение уровня протоколирования ошибок.
Список параметров
Новое значение уровня error_reporting. Это может быть битовая маска или именованные константы. При использовании именованных констант нужно будет следить за совместимостью с новыми версиями PHP. В новых версиях могут добавиться новые уровни ошибок, увеличиться диапазон целочисленных типов. Все это может привести к нестабильной работе при использовании старых целочисленных обозначений уровней ошибок.
Доступные константы уровней ошибок и их описания приведены в разделе Предопределенные константы.
Возвращаемые значения
Возвращает старое значение уровня error_reporting либо текущее значение, если аргумент level не задан.
Список изменений
Версия | Описание |
---|---|
5.4.0 | E_STRICT стал частью E_ALL . |
5.3.0 | Добавлены E_DEPRECATED и E_USER_DEPRECATED . |
5.2.0 | Добавлена E_RECOVERABLE_ERROR . |
5.0.0 | Добавлена E_STRICT (не входит в состав E_ALL ). |
Примеры
Пример #1 Примеры использования error_reporting()
// Выключение протоколирования ошибок
error_reporting ( 0 );
// Включать в отчет простые описания ошибок
error_reporting ( E_ERROR | E_WARNING | E_PARSE );
// Включать в отчет E_NOTICE сообщения (добавятся сообщения о
//непроинициализированных переменных или ошибках в именах переменных)
error_reporting ( E_ERROR | E_WARNING | E_PARSE | E_NOTICE );
// Добавлять сообщения обо всех ошибках, кроме E_NOTICE
error_reporting ( E_ALL & ~ E_NOTICE );
// Добавлять в отчет все PHP ошибки (см. список изменений)
error_reporting ( E_ALL );
// Добавлять в отчет все PHP ошибки
error_reporting (- 1 );
// То же, что и error_reporting(E_ALL);
ini_set ( ‘error_reporting’ , E_ALL );
Примечания
Большинство E_STRICT ошибок отлавливаются на этапе компиляции, поэтому такие ошибки не включаются в отчет в файлах, где error_reporting расширен для включения E_STRICT ошибок (и наоборот).
Если передать -1, будут отображаться все возможные ошибки, даже если в новых версиях PHP добавятся уровни или константы. В версии PHP 5.4. передача константы E_ALL дает тот же результат.
Смотрите также
- Директива display_errors
- Директива html_errors
- Директива xmlrpc_errors
- ini_set() — Установка значения настройки конфигурации
Предопределённые константы
Перечисленные ниже константы всегда доступны как часть ядра PHP.
Замечание: Данные имена констант можно использовать в файле php.ini но не вне PHP, как например в файле httpd.conf , где вместо них необходимо использовать значения их битовых масок.
Значение | Константа | Описание | Примечание |
---|---|---|---|
1 | E_ERROR ( int ) | Фатальные ошибки времени выполнения. Это неустранимые средствами самого скрипта ошибки, такие как ошибка распределения памяти и т.п. Выполнение скрипта в таком случае прекращается. | |
2 | E_WARNING ( int ) | Предупреждения времени выполнения (не фатальные ошибки). Выполнение скрипта в таком случае не прекращается. | |
4 | E_PARSE ( int ) | Ошибки на этапе компиляции. Должны генерироваться только парсером. | |
8 | E_NOTICE ( int ) | Уведомления времени выполнения. Указывают на то, что во время выполнения скрипта произошло что-то, что может указывать на ошибку, хотя это может происходить и при обычном выполнении программы. | |
16 | E_CORE_ERROR ( int ) | Фатальные ошибки, которые происходят во время запуска РНР. Такие ошибки схожи с E_ERROR , за исключением того, что они генерируются ядром PHP. | |
32 | E_CORE_WARNING ( int ) | Предупреждения (не фатальные ошибки), которые происходят во время начального запуска РНР. Такие предупреждения схожи с E_WARNING , за исключением того, что они генерируются ядром PHP. | |
64 | E_COMPILE_ERROR ( int ) | Фатальные ошибки на этапе компиляции. Такие ошибки схожи с E_ERROR , за исключением того, что они генерируются скриптовым движком Zend. | |
128 | E_COMPILE_WARNING ( int ) | Предупреждения на этапе компиляции (не фатальные ошибки). Такие предупреждения схожи с E_WARNING , за исключением того, что они генерируются скриптовым движком Zend. | |
256 | E_USER_ERROR ( int ) | Сообщения об ошибках, сгенерированные пользователем. Такие ошибки схожи с E_ERROR , за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error() . | |
512 | E_USER_WARNING ( int ) | Предупреждения, сгенерированные пользователем. Такие предупреждения схожи с E_WARNING , за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error() . | |
1024 | E_USER_NOTICE ( int ) | Уведомления, сгенерированные пользователем. Такие уведомления схожи с E_NOTICE , за исключением того, что они генерируются в коде скрипта, средствами функции PHP trigger_error() . | |
2048 | E_STRICT ( int ) | Включаются для того, чтобы PHP предлагал изменения в коде, которые обеспечат лучшее взаимодействие и совместимость кода. | |
4096 | E_RECOVERABLE_ERROR ( int ) | Фатальные ошибки с возможностью обработки. Такие ошибки указывают, что, вероятно, возникла опасная ситуация, но при этом, скриптовый движок остаётся в стабильном состоянии. Если такая ошибка не обрабатывается функцией, определённой пользователем для обработки ошибок (смотрите set_error_handler() ), выполнение приложения прерывается, как происходит при ошибках E_ERROR . | |
8192 | E_DEPRECATED ( int ) | Уведомления времени выполнения об использовании устаревших конструкций. Включаются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP. | |
16384 | E_USER_DEPRECATED ( int ) | Уведомления времени выполнения об использовании устаревших конструкций, сгенерированные пользователем. Такие уведомления схожи с E_DEPRECATED за исключением того, что они генерируются в коде скрипта, с помощью функции PHP trigger_error() . | |
32767 | E_ALL ( int ) | Все поддерживаемые ошибки, предупреждения и замечания. |
Представленные выше значения (как числовые, так и символьные) используются для задания битовой маски, определяющей об ошибках какого типа будет даваться отчёт. Вы можете использовать побитовые операторы, чтобы совмещать эти значения для указания определённых типов ошибок. Стоит отметить, что в php.ini допустимы только следующие операторы: ‘|’, ‘~’, ‘!’, ‘^’ и ‘&’.