Включаем показ ошибок интерпретатора PHP

Очень знакомая новичкам ситуация — код написали, а работает не так как задумано. Очень хотелось бы, чтобы сам PHP подсказывал что не так. Сделать это легко.

PHP довольно лоялен к опечаткам пользователя, например вызывается не то поле из базы или в вычислениях участвует не объявленная переменная — скрипт запустится и даже не пискнет. Только вот расчеты и вывод будут другие. Чтобы легко было отслеживать подобное на этапе разработки подключите в начало вашего скрипта следующие строки:

Первая строчка задает активацию флага показа ошибок, вторая какие ошибки кидать. E_ALL будет означать показ всех ошибок без исключения.

Но если у вас браузер показывает белый экран или ошибку 500 (Internal Server Error) — это значит явную и грубую ошибку в скрипте которым подавился ваш веб-сервер и причину этого надо смотреть в error-логах.

Рассмотрим как это работает. Предположим у вас есть такой код:

Думаете, выведет 9? А вот и нет, на экране будет число 5. Потому что в предпоследней строке опечатка во второй переменной. secondParan вместо secondParam. Подобные баги чрезвычайно противные и дебажить их можно очень долго. Если добавить в скрипт указанные выше пару строк, вывод будет такой:

И все станет ясно. Это первое что следует делать при отладке PHP скриптов. Но на этапе продакшена подобные вещи из проекта лучше убрать, так как при возникновении каких-либо ошибок (соединение с базой отвалится) есть риск компрометации внутренней файловой структуры веб-директорий.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *