Как вывести ошибки PHP на экран

Ошибки в скрипте PHP – обычное дело не только для новичков, но и для профессионалов. Разберемся, как узнать, что наш код работает неправильно, и исправить его.

На фото изображено окно программы PHPstorm.

Какие бывают ошибки

Их можно разделить на 2 типа: фатальные и не фатальные. Первый вид подразумевает, что проблема настолько серьезная, что после ее возникновения скрипт перестает выполняться, а второй вид может вызывать недоразумения в дальнейшем выполнении кода и способствовать возникновению новых сбоев.

Например, фатальной ошибкой будет считаться появление на экране надписи E_ERROR, которая может означать, допустим, неправильное распределение памяти. А возникновение E_NOTICE никак не повлияет на выполнение, но предупредит разработчика, что его код долго загружается. Эта проблема может возникнуть при неправильной очередности кода или подключении больших сторонних файлов.

Полный список констант и их значения можно посмотреть в официальной документации php в разделе предопределенные константы. Их можно использовать в функциях для вывода конкретных видов ошибок.

Включение отображения ошибок в самом скрипте

Самым простым способом, доступным даже новичку, является написание в начале скрипта строки:

error_reporting (‘E_ALL’);

Она пишется до выполнения основного кода и в случае возникновения каких-либо сбоев выведет их значения на экран. Вместо E_ALL можно писать любые интересующие константы.

В файле .htaccess

Этот вариант работает только на серверах Apache. Файл .htaccess является обычным текстовым документом, который нужен для простой настройки сервера и указания, например, что будет происходить, если пользователь перейдет на страницу с ошибкой. Их вывод настраивается прописыванием в файле строки:

php_flag display_errors On;

Чтобы указать конкретный тип ошибок, который нужно отобразить, пишем:

php_value error_reporting “E_ALL”;

В файле php.ini

Этот параметр имеет наибольший приоритет выполнения, следом за ним идет информация из .htaccess и только после этого сам код. Он распространяется на все сайты, находящиеся на сервере, поэтому его чаще используют администраторы.

В php.ini вначале прописывается функция вывода, а после нее:

display_errors On;

Чтобы изменение вступило в силу, не забудьте перезагрузить сервер.

Как исправить код

Чтобы устранить все проблемы, которые вызывают ошибки, код нужно тщательно проверить. Для этого можно в файле php включить попеременный вывод. Перед каждым отдельным блоком кода php пишут:

ini_set (‘display_errors’, ‘On’);

После этого включают отображение всех или некоторых типов ошибок:

error_reporting (‘E_ALL’);

Когда проверяемый блок кода окончен, нужно еще раз написать функцию ini_set, но со значением Off.

Не используйте оператор @ перед выражениями. Он подавляет сбои, не выводя их на экран, но проблема от этого не исчезает и может вызвать неполадки скрипта в последующих его частях.

Как отключить отображение для пользователя

Если в ходе выполнения кода возникают ошибки, их нужно видеть только разработчикам. Пока сайт находится в процессе разработки, отображение констант ошибок на странице допустимо, но обычному пользователю их видеть не нужно.

Для сбора всех логов сайта создают специальный файл PHP_errors.log в корневой папке, а в скрипте пишут функцию:

php_value error_log ../PHP_errors.log

При этом все ранее прописанные в коде параметры отображения ошибок меняют с On на Off.

Ссылка на основную публикацию