set_error_handler
Задаёт свою функцию для обработки предупреждений и замечаний PHP.
Синтаксис
set_error_handler(?callable $callback, int $error_levels = E_ALL): ?callableПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $callback | ?callable | Функция, которая получает уровень ошибки, сообщение, файл и строку. |
| $error_levels | int | Необязательный. Какие уровни ошибок обрабатывать. |
Возвращаемое значение
?callableПредыдущий обработчик или `null`.
Примеры
Превращение предупреждения в исключение:
<?php
set_error_handler(function (int $level, string $message) {
throw new ErrorException($message);
});
try {
echo $undefined;
} catch (ErrorException $error) {
echo 'Caught: ', $error->getMessage();
}Результат:
Caught: Undefined variable $undefinedПримечания
Фатальные ошибки этим обработчиком не перехватываются. Непойманные исключения обрабатывает set_exception_handler().
См. также
В учебнике
- Ошибки и отладка — Виды ошибок PHP, настройки показа ошибок, журнал, превращение предупреждений в исключения и приёмы отладки.