Учебники

PHP — отладка ошибок

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

Чтобы сообщения об ошибках отображались в браузере, установите для директивы конфигурации display_errors значение On . Чтобы отправить ошибки в журнал ошибок веб-сервера, установите для параметра log_errors значение On. Вы можете установить их обоих на Вкл, если вы хотите сообщения об ошибках в обоих местах.

PHP определяет некоторые константы, которые вы можете использовать для установки значения error_reporting , так чтобы сообщалось только об ошибках определенного типа: E_ALL (для всех ошибок, кроме строгих уведомлений), E_PARSE (ошибки синтаксического анализа), E_ERROR (фатальные ошибки), E_WARNING (предупреждения), E_NOTICE (уведомления) и E_STRICT (строгие уведомления).

При написании PHP-программы рекомендуется использовать редакторы с поддержкой PHP, такие как BBEdit или Emacs . Одной из специальных особенностей этих редакторов является подсветка синтаксиса. Он меняет цвет разных частей вашей программы в зависимости от того, что это за части. Например, строки — розовые, ключевые слова, такие как if и while — синие, комментарии — серые, а переменные — черные.

Другая функция — это сопоставление кавычек и скобок, которое помогает убедиться, что ваши кавычки и скобки сбалансированы. Когда вы вводите закрывающий разделитель, такой как}, редактор выделяет открывающее {что соответствует.

Есть следующие пункты, которые необходимо проверить при отладке вашей программы.

  • Отсутствие точек с запятой. Каждый оператор PHP заканчивается точкой с запятой (;). PHP не прекращает читать оператор до точки с запятой. Если вы пропустите точку с запятой в конце строки, PHP продолжит читать инструкцию в следующей строке.

  • Недостаточно знаков равенства — когда вы спрашиваете, равны ли два значения в выражении сравнения, вам нужны два знака равенства (==). Использование одного знака равенства является распространенной ошибкой.

  • Имена переменных с ошибками — если вы неправильно написали переменную, PHP понимает ее как новую переменную. Помните: для PHP $ test — это не та же переменная, что и $ Test.

  • Отсутствующие знаки доллара. Отсутствующий знак доллара в имени переменной действительно трудно увидеть, но, по крайней мере, обычно приводит к сообщению об ошибке, чтобы вы знали, где искать проблему.

  • Тревожные цитаты — Вы можете иметь слишком много, слишком мало или неправильные цитаты. Поэтому проверьте сбалансированное количество цитат.

  • Отсутствуют круглые скобки и фигурные скобки — они всегда должны быть в парах.

  • Индекс массива — все массивы должны начинаться с нуля, а не с 1.

Отсутствие точек с запятой. Каждый оператор PHP заканчивается точкой с запятой (;). PHP не прекращает читать оператор до точки с запятой. Если вы пропустите точку с запятой в конце строки, PHP продолжит читать инструкцию в следующей строке.

Недостаточно знаков равенства — когда вы спрашиваете, равны ли два значения в выражении сравнения, вам нужны два знака равенства (==). Использование одного знака равенства является распространенной ошибкой.

Имена переменных с ошибками — если вы неправильно написали переменную, PHP понимает ее как новую переменную. Помните: для PHP $ test — это не та же переменная, что и $ Test.

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

Тревожные цитаты — Вы можете иметь слишком много, слишком мало или неправильные цитаты. Поэтому проверьте сбалансированное количество цитат.

Отсутствуют круглые скобки и фигурные скобки — они всегда должны быть в парах.

Индекс массива — все массивы должны начинаться с нуля, а не с 1.

Более того, обрабатывайте все ошибки правильно и направляйте все сообщения трассировки в файл системного журнала, чтобы в случае возникновения каких-либо проблем он был зарегистрирован в файле системного журнала, и вы сможете отладить эту проблему.