Проверка синтаксиса PHP? - PullRequest
       11

Проверка синтаксиса PHP?

1 голос
/ 09 марта 2009

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

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

Ответы [ 4 ]

4 голосов
/ 09 марта 2009

Вы должны убедиться, что ваш файл php.ini разработки содержит:

display_errors = On
error_reporting  =  E_ALL

или

display_errors = On
error_reporting  =  E_ALL | E_STRICT

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

0 голосов
/ 17 марта 2009

Я некоторое время боролся с этим (студенты изучают PHP в некоторых из моих классов), потому что я пытался использовать

ini_set('display_errors', 1);

как предложено (например, PHPv6 и MySQL 5 от Ullman), но размещение его в вашем коде не перехватывало ошибок синтаксического анализа. Вместо этого я продолжал видеть пустые страницы.

A комментарий на веб-страницах руководства по PHP дал мне понять, почему установка

display_errors = On 

в php.ini - это не то же самое, что добавление

ini_set('display_errors', 1);

вверху вашего php-скрипта. Кажется, что PHP имеет двухфазную операцию и полностью анализирует файл сценария, прежде чем он начнет выполнять что-либо из этого. Если синтаксический анализ не выполняется из-за пропущенного ";" или ")", то

ini_set('display_errors', 1);

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

0 голосов
/ 09 марта 2009

В процессе разработки вы всегда должны устанавливать для сообщения об ошибках на самый высокий уровень (E_ALL / E_STRICT), чтобы получать все сообщения об ошибках .

0 голосов
/ 09 марта 2009

Установите php.ini error_reporting на E_ALL

display_error = On
error_reporting = E_ALL

Вы можете сделать это и в своем коде.

error_reporting(E_ALL);

или

ini_set('error_reporting', E_ALL);

Подробнее об отчете об ошибках можно прочитать здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...