Извините за глупый вопрос, но я пробежал код, который использовал:
<?=$MAP_OBJECT->printOnLoad();?> <?=$MAP_OBJECT->printMap();?> <?=$MAP_OBJECT->printSidebar();?>
Есть ли что-то особенное в <?=
Over <?php
или просто просто <?
?
Вместо того, чтобы говорить о том, устарели ли short_open_tags или нет, мы должны говорить о преимуществах и недостатках при использовании коротких открытых тегов:
Использование коротких открытых тегов <?
наряду с <?=
короче и, вероятно, легче писать, чем стандартные теги открытия <?php
и <?php echo
соответственно. Это очень удобно при использовании PHP непосредственно в шаблоне. (Вероятно, это также причина, почему PHP имеет альтернативный синтаксис для структур управления .)
При использовании коротких открытых тегов вам необходимо включить short_open_tags . Если вы или ваш веб-хостинг-провайдер решили отключить short_open_tags , ваше приложение, вероятно, больше не будет работать, и вы можете столкнуться с серьезными проблемами безопасности. Поскольку, если short_open_tags отключен, распознаются только стандартные открывающие теги <?php
, и все внутри коротких открывающих тегов рассматривается как обычный текст. (См. Также сообщение в блоге, на которое ссылается ответ Сарфраза Ахмеда).
Это требование делает ваше приложение PHP менее портативным, если вы хотите писать приложения, которые не только для вас. Вот почему многие рекомендуют не использовать короткие открытые теги (в том числе руководство по PHP):
Примечание. Использование коротких тегов следует избегать при разработке приложений или библиотек, предназначенных для перераспределения, или развертывании на серверах PHP, которые не находятся под вашим контролем, поскольку короткие теги могут не поддерживаться на целевом сервере. Для переносимого, распространяемого кода обязательно используйте короткие теги.
Начиная с PHP 5.4 <?=
Всегда доступен, независимо от опции short_open_tags
. <?
с другой стороны, необходимо включить эту опцию.
Другая проблема заключается в использовании инструкций обработки XML, таких как <?xml … ?>
. Когда short_open_tags включен, вы не можете использовать их непосредственно в своем коде, но вам нужно использовать PHP для его вывода:
Если вы хотите использовать PHP в сочетании с XML, вы можете отключить этот параметр, чтобы использовать
<?xml ?>
Inline. В противном случае вы можете распечатать его с помощью PHP, например:<?php echo '<?xml version="1.0"?>'; ?>
<?php echo '<?xml version="1.0"?>'; ?>
.
В противном случае PHP задушит xml
в <?xml
.
Теперь некоторые последние слова об устаревании: В настоящее время short_open_tags не устарел. В противном случае в руководстве будет указано это явно. Кроме того, Rasmus Lerdorf, изобретатель PHP, написал в ответ на вопрос «Правда ли, что short_open_tag устарел в PHP 6?» Во внутреннем почтовом списке, что было несколько причин не удалять short_open_tags в PHP 6:
Это одна из причин, по которой мы решили не удалять их в PHP 6.
Это сокращенное выражение <?php echo .... ?>
Известное как короткие теги . Вы должны избегать их использования, потому что:
<?xml ... ?>
Поэтому вы никогда не должны использовать их снова, также посмотрите:
PHP Short Open Tag: удобный ярлык или короткое изменение безопасности?
<?=
– короткий тег, который в значительной степени эквивалентен:
<?php echo
Начиная с PHP 5.4, этот синтаксис всегда доступен, но в более ранних версиях PHP ему требуется short_open_tag
. Что касается поиска в Stack Overflow, попробуйте code:"<?="
.
Это сокращение для <?php echo $MAP_OBJECT->printOnLoad(); ?>
<?php echo $MAP_OBJECT->printOnLoad(); ?>
. Простейший способ написать его, когда вы создаете шаблоны и все что-то на PHP.
Будьте осторожны. Мое понимание (хотя я никогда не сталкивался с этим сам) заключается в том, что сокращенную версию можно отключить на некоторых серверах.
<?=
это не одно. Это на самом деле <?
а затем =
. Как отметил @derekerdmann, это неоспоримая конфигурация.
Дайте следующий вид:
Чтобы исправить все эти ошибочные ответы:
короткие открытые теги не будут удалены или устарели.
добавив это из-за дублирования вопросов
aka shortags – альтернативный тег для php, но работает только на серверах, на которых он включен.
Это позволяет вам писать эхо, как это
Однако не рекомендуется использовать их и предлагалось удалить или устареть в php5.4 + вместе с глобальными регистрами, безопасным режимом и магическими кавычками и т. Д.
Поэтому, хотя вы можете использовать их, они не рекомендуются. 1. Они не переносимы, поскольку серверы должны включать их. 2. Они могут легко привести к коду спагетти, так как вы можете легко интегрировать html в свой файл. 3. При смешивании их с объявлением xml необходимо использовать специальные методы
Однако они хороши для создания шаблонов наряду с другими сокращенными обозначениями для циклов и условных проверок.