PHP редактор / компилятор / все, что показывает ошибки в моем коде - PullRequest
1 голос
/ 10 сентября 2010

Допустим, у меня есть некоторый код:

  <?php
  echo "Hello Everybody!";
  echo "<br/>" ;
  $var1 = 23 ;  
  var_dump($var1)   ;

  $str = <<<HERE

  some random text
  more random strings

  HERE;

  echo $str ;
?>

Теперь, запустив его как index.php на localhost, выдает пустую страницу.Это, вероятно, потому что есть какая-то ошибка в коде.Теперь есть что-то (редактор, компилятор, что угодно), которое скажет мне точно, где и в чем моя ошибка?

В настоящее время я использую один из этих переносимых серверов (XAMP, netserver, uniserver) для запуска своих php-страниц, который работает хорошо, но он не сообщает мне, какие ошибки есть в моем коде.

Спасибо

Ответы [ 6 ]

2 голосов
/ 10 сентября 2010

Инструмент, который вы должны использовать для этого, - PHP.

Убедитесь, что для error_reporting установлено что-то высокое, например E_STRICT:

В PHP 5 доступен новый уровень ошибки E_STRICT.Поскольку E_STRICT не входит в E_ALL, вы должны явно включить этот уровень ошибок.Включение E_STRICT во время разработки имеет некоторые преимущества.Сообщения STRICT помогут вам использовать самый последний и лучший предложенный метод кодирования, например, предупредит вас об использовании устаревших функций.

0 голосов
/ 10 сентября 2010

К вашему сведению, если вы просто хотите быстро проверить синтаксис, используйте переключатель -l с двоичным файлом php.

php -l myscript.php

0 голосов
/ 10 сентября 2010

Создайте новую страницу, назовите ее index.php

error_reporting(E_ALL);
ini_set("display_errors", 1);
include('content.php');

content.php должен быть страницей, где находится ваш код,

Теперь это покажет вашу ошибку! Также я столкнулся с проблемой пару дней назад, когда вы работаете на tmp-сервере.

0 голосов
/ 10 сентября 2010

Многие IDE предлагают эту функциональность - в голову приходит NetBeans, Dreamweaver CS5.

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

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

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

0 голосов
/ 10 сентября 2010

Проверьте ваш php.ini, чтобы увидеть, если error_reporting выключен.

0 голосов
/ 10 сентября 2010

Я позволю другим ответить на вопрос редактора.Я отвечу на часть ошибки в коде:

  HERE;

до

HERE;

Не должно быть начального пробела, где heredoc заканчивается.Из руководства:

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

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