PHP Функції помилки
PHP Error / Помилка. Інтро
Функції помилок використовуються для обробки та реєстрації помилок.
Функції помилок дозволяють нам визначати власні правила обробки помилок і змінювати спосіб реєстрації помилок.
Функції журналювання дозволяють нам надсилати повідомлення безпосередньо на інші машини, електронні листи чи системні журнали.
Функції звітування про помилки дозволяють нам налаштувати рівень і тип відгуку про помилку.
Інсталяція
Функції помилок PHP є частиною ядра PHP. Для використання цих функцій не потрібна установка.
Конфігурація середовища виконання
На поведінку функцій помилок впливають налаштування у php.ini.
Помилки та параметри конфігурації журналу:
Назва | За замовчуванням | Опис | Змінний |
---|---|---|---|
error_reporting | NULL | Встановлює рівень повідомлення про помилки (ціле число або іменовані константи) | PHP_INI_ALL |
display_errors | "1" | Визначає, чи слід друкувати помилки на екрані чи приховувати їх від користувача. Примітка: цю функцію ніколи не слід використовувати на робочих системах (лише для підтримки вашої розробки) |
PHP_INI_ALL |
display_startup_errors | "0" | Навіть якщо display_errors увімкнено, помилки, які виникають під час послідовності запуску PHP, не відображаються. Примітка: наполегливо рекомендується не відключати display_startup_errors, за винятком налагодження |
PHP_INI_ALL |
log_errors | "0" | Визначає, чи слід записувати повідомлення про помилки сценарію в журнал помилок сервера чи error_log. Примітка. Наполегливо рекомендується використовувати журнал помилок замість відображення помилок на робочих веб-сайтах |
PHP_INI_ALL |
log_errors_max_len | "1024" | Встановлює максимальну довжину log_errors у байтах. Значення "0" можна використовувати, щоб взагалі не застосовувати будь-яку максимальну довжину. Ця довжина застосовується до зареєстрованих помилок, відображених помилок, а також до $php_errormsg (доступно з PHP 4.3) | PHP_INI_ALL |
ignore_repeated_errors | "0" | Визначає, чи реєструвати повторювані повідомлення про помилки. Якщо встановлено значення "1" він не буде реєструвати помилки з повторюваними помилками з того самого файлу в тому самому рядку (доступно з PHP 4.3) | PHP_INI_ALL |
ignore_repeated_source | "0" | Визначає, чи реєструвати повторювані повідомлення про помилки. Якщо встановлено значення "1" він не буде реєструвати помилки з повторюваними помилками з різних файлів або вихідних рядків (доступно з PHP 4.3) | PHP_INI_ALL |
report_memleaks | "1" | Якщо встановлено "1" (за замовчуванням), цей параметр відображатиме звіт про витоки пам’яті, виявлені менеджером пам’яті Zend (доступний з PHP 4.3) | PHP_INI_ALL |
track_errors | "0" | Якщо встановлено значення "1", останнє повідомлення про помилку завжди буде присутнім у змінній $php_errormsg | PHP_INI_ALL |
html_errors | "1" | Вимикає теги HTML у повідомленнях про помилки | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
xmlrpc_errors | "0" | Вимикає звичайні звіти про помилки та форматує помилки як повідомлення про помилку XML-RPC (доступно з PHP 4.1) | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | Використовується як значення елемента XML-RPC faultCode (доступний, починаючи з PHP 4.1) | PHP_INI_ALL |
docref_root | "" | (доступний, починаючи з PHP 4.3) | PHP_INI_ALL |
docref_ext | "" | (доступний, починаючи з PHP 4.3.2) | PHP_INI_ALL |
error_prepend_string | NULL | Визначає рядок для виведення перед повідомленням про помилку | PHP_INI_ALL |
error_append_string | NULL | Визначає рядок для виведення після повідомлення про помилку | PHP_INI_ALL |
error_log | NULL | Вказує ім’я файлу, куди повинні записуватися помилки скрипту. Файл має бути доступним для запису користувачем вебсервера. Якщо використовується спеціальне значення syslog, помилки надсилаються до системного реєстратора | PHP_INI_ALL |
PHP Функції реєстрації помилок і журналювання
Функція | Опис |
---|---|
debug_backtrace() | Створює зворотне трасування |
debug_print_backtrace() | Друкує зворотне трасування |
error_clear_last() | Очищає останню помилку |
error_get_last() | Повертає останню помилку, яка сталася |
error_log() | Надсилає повідомлення про помилку в журнал, файл або обліковий запис електронної пошти |
error_reporting() | Визначає, про які помилки повідомляється |
restore_error_handler() | Відновлює попередній обробник помилок |
restore_exception_handler() | Відновлює попередній обробник винятків |
set_error_handler() | Встановлює визначену користувачем функцію обробки помилок |
set_exception_handler() | Встановлює визначену користувачем функцію обробки винятків |
trigger_error() | Створює повідомлення про помилку на рівні користувача |
user_error() | Псевдонім trigger_error() |
PHP Попередньо визначені константи помилок і журналювання
Значення | Константа | Опис |
---|---|---|
1 | E_ERROR | Фатальні помилки під час виконання. Помилки, які неможливо виправити. Виконання сценарію зупинено |
2 | E_WARNING | Попередження під час виконання (нефатальні помилки). Виконання скрипту не зупинено |
4 | E_PARSE | Помилки аналізу під час компіляції. Помилки аналізу повинні генеруватися лише синтаксичним аналізатором |
8 | E_NOTICE | Повідомлення під час виконання. Скрипт виявив щось, що може бути помилкою, але також може статися під час нормального виконання скрипту |
16 | E_CORE_ERROR | Фатальні помилки під час запуску PHP. Це схоже на E_ERROR, за винятком того, що воно генерується ядром PHP |
32 | E_CORE_WARNING | Нефатальні помилки під час запуску PHP. Це як E_WARNING, за винятком того, що воно генерується ядром PHP |
64 | E_COMPILE_ERROR | Фатальні помилки під час компіляції. Це схоже на E_ERROR, за винятком того, що її генерує Zend Scripting Engine |
128 | E_COMPILE_WARNING | Нефатальні помилки під час компіляції. Це схоже на E_WARNING, за винятком того, що воно генерується Zend Scripting Engine |
256 | E_USER_ERROR | Критична помилка, створена користувачем. Це схоже на E_ERROR, за винятком того, що воно генерується в коді PHP за допомогою PHP функції trigger_error() |
512 | E_USER_WARNING | Нефатальне попередження, створене користувачем. Це схоже на E_WARNING, за винятком того, що воно генерується в коді PHP за допомогою PHP функції trigger_error() |
1024 | E_USER_NOTICE | Сповіщення, створене користувачем. Це схоже на E_NOTICE, за винятком того, що воно генерується в коді PHP за допомогою PHP функції trigger_error() |
2048 | E_STRICT | Увімкніть, щоб PHP пропонував зміни до вашого коду, що забезпечить найкращу сумісність і пряму сумісність вашого коду (починаючи з PHP 5, але не включено в E_ALL до PHP 5.4) |
4096 | E_RECOVERABLE_ERROR | Фатальна помилка, яку можна вловити. Вказує на те, що ймовірно небезпечна помилка сталася, але не залишила двигун у нестабільному стані. Якщо помилка не виявлена визначеним користувачем описом, програма переривається, оскільки це була E_ERROR (починаючи з PHP 5.2) |
8192 | E_DEPRECATED | Повідомлення під час виконання. Увімкніть це, щоб отримувати попередження про код, який не працюватиме в майбутніх версіях (починаючи з PHP 5.3) |
16384 | E_USER_DEPRECATED | Попередження, створене користувачем. Це схоже на E_DEPRECATED, за винятком того, що воно генерується в коді PHP за допомогою PHP функції trigger_error() (починаючи з PHP 5.3) |
32767 | E_ALL | Увімкнути всі помилки та попередження PHP (крім E_STRICT у версіях < 5.4) |