Basics
Оновлено: 09.05.2023
PHP повідомляє про помилки у відповідь на ряд внутрішніх умов виникнення помилок. Вони можуть бути використані для сигналізації про різні умови і можуть бути відображені та/або занесені до журналу, якщо це необхідно.
Кожна помилка, яку генерує PHP, має певний тип. Список цих типів помилок доступний разом з коротким описом їхньої поведінки і того, як вони можуть бути спричинені.
Якщо обробник помилок не задано, то PHP буде обробляти будь-які помилки, що виникають, відповідно до його конфігурації. Про які помилки повідомляти, а які ігнорувати, можна керувати за допомогою директиви error_reporting php.ini або під час виконання за допомогою виклику error_reporting(). Настійно рекомендується встановити директиву конфігурації, оскільки деякі помилки можуть виникнути ще до початку виконання вашого скрипта.
У середовищі розробки ви завжди повинні встановлювати error_reporting в E_ALL, оскільки вам потрібно знати про проблеми, що виникають у PHP, і виправляти їх. У виробництві ви можете встановити менш багатослівний рівень, наприклад, E_ALL & ~E_NOTICE & ~E_DEPRECATED, але в багатьох випадках E_ALL також підходить, оскільки це може забезпечити раннє попередження про потенційні проблеми.
Те, що PHP робить з цими помилками, залежить від двох інших директив php.ini. display_errors контролює, чи буде показано помилку у виведенні скрипта. У виробничому середовищі цей параметр завжди слід вимикати, оскільки він може містити конфіденційну інформацію, таку як паролі до баз даних, але часто корисно вмикати його під час розробки, оскільки він забезпечує негайне повідомлення про проблеми.
На додаток до відображення помилок, PHP може записувати помилки до журналу, якщо увімкнено директиву log_errors. При цьому всі помилки буде записано до файлу або системного журналу, визначеного за допомогою error_log. Це може бути дуже корисно у виробничому середовищі, оскільки ви можете реєструвати помилки, які виникають, а потім створювати звіти на основі цих помилок.
Якщо обробка помилок PHP за замовчуванням є недостатньою, ви також можете обробляти багато типів помилок за допомогою власного обробника помилок, встановивши його за допомогою функції set_error_handler(). Хоча деякі типи помилок не можуть бути оброблені таким чином, ті, які можуть бути оброблені, можуть бути оброблені так, як вважає за потрібне ваш скрипт: наприклад, це може бути використано для показу користувачеві спеціальної сторінки помилки, а потім звіту більш безпосередньо, а не через журнал, наприклад, шляхом надсилання електронного листа.