Извините за глупый вопрос, но я натыкался на код, который использовал:
<?=$MAP_OBJECT->printOnLoad();?>
<?=$MAP_OBJECT->printMap();?>
<?=$MAP_OBJECT->printSidebar();?>
Есть ли что-либо специальное о <?=
<?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?>
встроенный. В противном случае вы можете распечатать его с помощью PHP, например:Php echo ' Xml version = "1.0"?>'; ?>
.
В противном случае PHP подавится на xml
в Xml
.
Теперь несколько слов об устаревании: В настоящее время short_open_tags не является устаревшим. В противном случае в руководстве это было бы прямо указано. Кроме того, Расмус Лердорф, изобретатель PHP, написал в ответ на вопрос: «Верно ли, что short_open_tag устарел в PHP 6?»Во внутреннем списке рассылки , что было несколько причин не удалять short_open_tags в PHP 6:
Это одна из причин, по которой мы решили не удалять их в PHP 6.
Они являются сокращением известные как короткие теги. Вы должны избегать их использования, потому что:
Поэтому вы никогда не должны их использовать, также посмотрите:
PHP Short Open Tag: Удобное сокращение или изменение безопасности?
Это сокращение для Php echo $ MAP_OBJECT-> printOnLoad (); ?>
. Более простой способ написать это, когда вы создаете шаблоны и тому подобное на основе PHP.
Но будьте осторожны. Насколько я понимаю (хотя сам никогда не сталкивался с этим), сокращенная версия может быть отключена на некоторых серверах.
Просто чтобы исправить все эти вводящие в заблуждение ответы:
короткие открытые теги не будут удалены или объявлены устаревшими.
=
- это не одно. На самом деле это
, а затем =
. Как упомянул @derekerdmann, это нерекомендуемая конфигурация.
Обратите внимание на следующее: