При разработке сайта часто возникает ситуация, когда страница отображается некорректно или вовсе показывает пустой экран. В большинстве случаев это связано с ошибками в PHP-коде. По умолчанию на многих хостингах вывод ошибок отключён, поэтому их нужно включать вручную.
В этой статье разберём, как сделать простой и эффективный скрипт для отображения ошибок в PHP.
Зачем нужен вывод ошибок
Вывод ошибок помогает:
- быстро находить синтаксические ошибки;
- видеть предупреждения и уведомления;
- диагностировать проблемы в логике программы;
- избежать «белого экрана» без объяснений.
При этом важно помнить, что на рабочем сайте ошибки обычно скрывают, чтобы не раскрывать внутреннюю информацию.
Базовый скрипт для вывода всех ошибок
Самый простой способ — включить отображение ошибок прямо в начале PHP-файла:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
?>
Что делает этот код:
error_reporting(E_ALL)— включает отображение всех типов ошибокdisplay_errors— показывает ошибки в браузереdisplay_startup_errors— показывает ошибки при запуске PHP
Такая конфигурация используется для отладки и разработки.
Частичное отображение ошибок
Иногда нужно скрыть незначительные уведомления (Notice):
<?php
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 1);
?>
Это позволяет видеть важные ошибки, но не засорять вывод мелкими предупреждениями.
Скрипт-обёртка для отладки
Если основной файл не работает (например, белый экран), можно использовать отдельный файл для запуска:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);include 'index.php';
?>
Этот подход позволяет увидеть ошибки даже в случае критических сбоев.
Пользовательский обработчик ошибок
Для более продвинутого контроля можно создать собственную функцию обработки ошибок:
<?php
function customError($errno, $errstr, $errfile, $errline) {
echo "Ошибка: [$errno] $errstr - $errfile:$errline";
}set_error_handler("customError");echo $test; // вызовет ошибку
?>
Такой подход позволяет:
- форматировать вывод ошибок
- логировать их
- обрабатывать по своим правилам
Логирование ошибок
На продакшене лучше не выводить ошибки на экран, а записывать их в файл:
<?php
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', 'error.log');
error_reporting(E_ALL);
?>
Преимущества:
- безопасность
- возможность анализа ошибок
- отсутствие лишней информации для пользователя
Типичные ошибки
- Белый экран
Обычно означает критическую ошибку — нужно включитьdisplay_errors. - Ошибки не отображаются
Возможные причины:
- отключён
display_errors - ограничения хостинга
- ошибка возникает до выполнения кода
- Использование
@
Оператор@подавляет ошибки и усложняет отладку.
Когда включать и выключать ошибки
Рекомендуемый подход:
- разработка — включены все ошибки
- продакшен — ошибки скрыты, включено логирование
Это баланс между удобством разработки и безопасностью.
Итог
Скрипт для вывода ошибок в PHP — это обязательный инструмент при разработке. Он помогает быстро находить проблемы и понимать, что происходит в коде.
Минимальный рабочий вариант:
error_reporting(E_ALL);
ini_set('display_errors', 1);
Для продакшена рекомендуется отключить вывод и использовать логирование. Это обеспечит безопасность и стабильную работу сайта.