В PHP есть несколько уровней ошибок. Самая низкая — уровень парсинга (например, нет точки с запятой).
Уровни ошибок в PHP:
- E_PARSE — не началось исполнение кода, например, забыли ;
- E_ERROR — ошибка исполнения; исполнение кода останавливается на моменте ошибки; пример ошибки — забыли задать значение функции
- E_WARNING — предупреждение, например, define(«name»); // нужно два параметра
- E_NOTICE — некритичные замечания; пример,
$num = "1"; unset($num); echo $num;
- E_DEPRECATED — для предупреждения устаревших функций, которые уберут в новых версиях PHP; появилась в 5.3
С ошибками все не так просто. Пример:
<?
$gold = «100»
echo $gold;
?>
Ошибку выдаст в 3 строке, а не во второй; т.к. для интерпретатора все что до точки с запятой — одна команда. Отсюда правило:
Если мы не видим ошибку в указанной строке — ошибка на одной из предыдущих строк.
Вывод ошибок регулируется в директивах php.ini:
- вывод ошибок в браузере
display _errors = On - ошибки каких урвоней можно показывать; для разработки обычно используется:
error_reporting = E_ALL & ~E_NOTICE // показывает все ошибки, кроме замечаний.
Есть специальные функции, чтобы переназначить вывод ошибок прямо из кода, не используя php.ini, например:
error_reporting(E_ALL); // вывод всех ошибок
error_reporting(0); // отключаем вывод всех ошибок
error_reporting(E_ALL & ~E_NOTICE); // сообщения обо всех ошибках, кроме E_NOTICE