<? или <? php --- есть ли разница?

Возможные дубликаты:
Возможно ли использовать короткие теги PHP? Что означает "<? =" , когда вы видите в PHP

существует ли какая-либо разница в использовании <? ?> для обозначения php-блока или использования <?php ?>?

если этого не происходит, зачем кому-то использовать <?php?

укажите, что расширение файла .php даст много информации о том, какой тип кода вы ищете.

Ответ 1

Первый называется short-open тегами, а второй - безопасным открытием и закрытием тегов. Вы можете включить/отключить короткие открытые теги в php.ini с помощью параметра short_open_tag.

Следует избегать коротких меток, посмотрите:

PHP Short Open Tag: удобный ярлык или короткое изменение безопасности?

Ответ 2

Серверы должны быть настроены так же, как и <?, поэтому рекомендуется использовать <?php для удобства переноски.

Из руководства (http://www.php.net/manual/en/language.basic-syntax.phpmode.php):

Существует четыре разные пары открытие и закрытие тегов, которые могут быть используется в PHP. Два из них, а также, всегда доступны. Два других короткие теги и теги стиля ASP, и может быть включено и выключено Файл конфигурации php.ini. Как таковой, в то время как некоторые люди находят короткие теги и Теги стиля ASP удобны, они менее переносимыми, и, как правило, не рекомендуется.

Ответ 3

<?php всегда можно использовать. <? может использоваться только в том случае, если включена директива short_open_tag.

short_open_tag указывает PHP, разрешена ли короткая форма (<? ?>) открытого тега PHP. Если вы хотите использовать PHP в сочетании с XML, вы можете отключить эту опцию, чтобы использовать <?xml ?> inline. В противном случае вы можете распечатать его с помощью PHP, например: <?php echo '<?xml version="1.0"?>'; ?>. Кроме того, если отключено, вы должны использовать длинную форму открытого тега PHP (<?php ?>).

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

- Описание основных директив php.ini

Как уже упоминалось, эта директива часто отключается, поэтому по причинам мобильности я предпочитаю использовать <?php ?>. Если это не проблема, не должно быть большой разницы, кроме этого, если директива включена, вы также можете использовать сокращенную <?=.

Ответ 4

Я никогда лично не сталкивался с этой проблемой, но поддержка <? ?> является пятнистой при переходе на разные серверы. Я предпочитаю просто придерживаться <?php ?> для ясности и согласованности.

Ответ 5

Использование коротких тегов <? ?> следует избегать при разработке приложений или библиотек, предназначенных для перераспределения, или развертывании на серверах PHP, которые не находятся под вашим контролем, поскольку короткие теги могут не поддерживаться на целевом сервере. Для переносимого, распространяемого кода обязательно используйте короткие теги.

Также обратите внимание, что если вы внедряете PHP в XML или XHTML, вам нужно будет использовать теги <?php ?>, чтобы оставаться совместимыми со стандартами.

Ответ 6

Всегда используйте <?php ?>, потому что <? ?>:

  • не будет работать в будущих версиях PHP
  • может быть смешан с определениями XML. (XML всегда начинается с <?xml ...)
  • не включен на многих общедоступных хостингах.

Ответ 7

короткие теги <? ?>, работают только в старых версиях php.

Ответ 8

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

Изменить: я думал, что это все еще проблема: http://terrychay.com/article/short_open_tag.shtml