Проверка синтаксиса PHP?
-
06-07-2019 - |
Вопрос
Я использую TextWrangler для редактирования PHP-кода.Я часто сталкиваюсь с проблемой, заключающейся в том, что код просто отображается как пустая страница в моей среде разработки.Есть ли хороший способ дополнительно указать, в каком месте моего кода я должен искать проблему?
Прямо сейчас я просто вручную просматриваю каждую строку каждый раз, когда сталкиваюсь с этим, но я предполагаю, что для этого есть какое-то решение, для которого я не смог найти название..
Решение
Вы должны убедиться, что ваш файл php.ini для разработки содержит:
display_errors = On
error_reporting = E_ALL
или
display_errors = On
error_reporting = E_ALL | E_STRICT
Даже если они включены, иногда ошибка нехватки памяти может привести к пустой странице.
Другие советы
Установите php.ini error_reporting
для E_ALL
display_error = On
error_reporting = E_ALL
Вы также можете сделать это в своем коде.
error_reporting(E_ALL);
или
ini_set('error_reporting', E_ALL);
Вы можете прочитать больше о сообщение об ошибке здесь.
В процессе разработки вы всегда должны установить отчеты об ошибках на высший уровень ( < code> E_ALL / E_STRICT
), чтобы получать все сообщения об ошибках.
Я боролся с этим некоторое время (студенты изучают PHP в некоторых из моих классов), потому что я пытался использовать
ini_set('display_errors', 1);
, как предлагалось (например, PHPv6 и MySQL 5 от Ullman), но размещение его в вашем коде не перехватывало ошибок синтаксического анализа. Вместо этого я продолжал видеть пустые страницы.
комментарий на веб-страницах руководства по PHP дал мне понять, почему настройка
display_errors = On
в php.ini не совсем то же самое, что добавление
<*>вверху вашего php-скрипта. Кажется, что PHP имеет двухфазную операцию и полностью анализирует файл сценария, прежде чем он начнет выполнять что-либо из этого. Если анализ не выполняется из-за отсутствия " ;; " или "), затем
<*>анализируется, но никогда не выполняется, поэтому ошибка синтаксического анализа не сообщается. Тот же комментарий предлагает способ сообщить об ошибках разбора, если у вас нет средств для изменения настроек php.ini.