Ошибки в PHP

В PHP есть несколько уровней ошибок. Самая низкая – уровень парсинга (например,  нет точки с запятой).

Уровни ошибок в PHP:

  1. E_PARSE – не началось исполнение кода, например, забыли ;
  2. E_ERROR – ошибка исполнения; исполнение кода останавливается на моменте ошибки; пример ошибки – забыли задать значение функции
  3. E_WARNING – предупреждение, например, define(“name”); // нужно два параметра
  4. E_NOTICE – некритичные замечания; пример, $num = "1"; unset($num); echo $num;
  5. 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

This entry was posted in PHP. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *