Author: Community, 2010-07-27

8 answers

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

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

Короткий открытый тег PHP: Удобный ярлык или Короткое изменение безопасности?

 11
Author: Sarfraz, 2010-07-27 13:37:06

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

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

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

 6
Author: Scott Saunders, 2010-07-27 14:12:07

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

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

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

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

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

 3
Author: Svish, 2010-07-27 13:46:49

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

 1
Author: krs1, 2010-07-27 13:39:46

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

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

 1
Author: Bakhtiyor, 2010-07-27 13:41:07

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

  • не будет работать в следующих версиях PHP
  • может быть смешан с определениями XML. (XML всегда начинается с <?xml ...)
  • не включен на многих сайтах общего хостинга.
 1
Author: TheHippo, 2010-07-27 13:48:39

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

 0
Author: Dexah, 2010-07-27 14:03:45

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

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

 -1
Author: Gabe, 2010-07-27 13:37:56