Что такое синтаксис PHP? - PullRequest
       2

Что такое синтаксис PHP?

1 голос
/ 11 сентября 2011

Чтение некоторого кода PHP, и я не могу понять использование:

<?=

Я понимаю использование тега php:

<?php и <?

Точное использование, которое я читаю:

<?=$form->hidden('mode',$mode); ?>

, где $ form - это новый экземпляр класса объекта и «скрытый» метод класса.Все это понятно, но когда я ставлю хотя бы пробел между?и = of <?= Я получаю ошибку:

Parse error: syntax error, unexpected '=' in /home/...

Я не могу найти что-либо на google или php.net относительно синтаксиса.

Буду признателен за любую помощь.

Ответы [ 8 ]

2 голосов
/ 11 сентября 2011

Это сокращение для echo. Примерно так (где expr - любое выражение):

<?= expr ?>

функционально эквивалентно этому:

<?php echo expr; ?>

Не рекомендуется использовать этот синтаксис, так как он не включен на некоторых серверах. (и если кто-то использует виртуальный хостинг, возможно, он не сможет его снова включить)

Документация PHP на это здесь .

1 голос
/ 11 сентября 2011

«Короткие открытые метки» - черт, короче.Если у вас в файле php.ini / httpd.conf / .htaccess включен параметр short_open_tags и вы пытаетесь вставить в документ тег XML, например, так ...

<?xml version="1.0" encoding="iso-8859-1"?>

PHP будет думать, что вы пытались написатьнемного PHP, ошибка и умереть.В конечном итоге вам нужно сделать

<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
1 голос
/ 11 сентября 2011

Он называется короткий открытый тег . Если он включен на вашем сервере, вы можете использовать его.

Из руководства по PHP:

Эта директива также затрагивала сокращение <?= до PHP 5.4.0, которое идентичен <? echo. Для использования этого ярлыка требуется short_open_tag быть на. Начиная с PHP 5.4.0, <?= всегда доступен.

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

Пример:

<?php echo $text; ?>
<?= $text; ?>
1 голос
/ 11 сентября 2011

<?= является сокращением для <?php echo.Его использование больше не рекомендуется, по-видимому, из-за некоторой неоднозначности с анализатором или несовместимости с некоторыми версиями PHP, хотя я все еще вижу его в больших проектах, таких как Drupal.

Редактировать: они называются «короткими тегами»"и обсуждение того, следует ли их использовать или нет, можно найти здесь: Допустимо ли использование коротких тегов PHP?

0 голосов
/ 11 сентября 2011

Это короткий тег, который недоступен для использования на всех серверах.

<?= совпадает с <?php echo

Если ввести пробел в <?=, аннулируется короткийтег, по которому вы получаете свою ошибку.

0 голосов
/ 11 сентября 2011
0 голосов
/ 11 сентября 2011

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

0 голосов
/ 11 сентября 2011

<?=, когда short_tags включено, является сокращением для <?php echo.

Это покрыто в самом начале руководства по PHP .

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