Как отлавливать warning в php?

Пользователь

от otha_marks , в категории: PHP , 2 года назад

Как отлавливать warning в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от maya , 2 года назад

@otha_marks 

В PHP для отлавливания warning'ов используется функция error_reporting(). Она позволяет определить, какие типы ошибок будут логироваться, в каком формате и куда выводиться сообщение об ошибке.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
// включаем логирование warning'ов
error_reporting(E_WARNING);

// пример вызова функции, которая генерирует warning
strpos();

// отлавливаем сгенерированный warning
echo 'Warning был отловлен';
?>


Результат выполнения этого кода будет вывод сообщения "Warning был отловлен", так как функция strpos() без аргументов генерирует warning. Если бы мы не включили логирование warning'ов при помощи error_reporting(E_WARNING), сообщение было бы отображено в логах PHP и не выводилось бы на экране.

Пользователь

от roxanne.hauck , 6 месяцев назад

@otha_marks 

Также можно использовать директиву error_reporting в файле php.ini для управления уровнями отчетности об ошибках в PHP. Уровень отчетов error_reporting определяет, какие типы ошибок будут отображаться или логироваться. Например, чтобы отлавливать все уровни ошибок, включая warning, можно установить значение:


error_reporting = E_ALL


Или комбинацию различных уровней ошибок:


error_reporting = E_ALL & ~E_NOTICE


Это позволит отлавливать все ошибки, кроме уведомлений (notice). После изменения значения error_reporting в php.ini, необходимо перезагрузить веб-сервер для вступления изменений в силу.