2010-07-27 3 views
10

Возможные Дубликаты:
Are PHP short tags acceptable to use?
What does “<?=” mean when seen in PHP<? или <? php --- есть ли разница?

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

если нет, то зачем кому-либо использовать <?php?

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

+1

См. Также http://stackoverflow.com/questions/3019696 – Gumbo

ответ

11

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

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

PHP Short Open Tag: Convenient Shortcut or Short Changing Security?

+0

«Весь мой PHP-код был явно выведен непосредственно в браузер, полностью игнорируемый PHP! Без прогонов, без хитов и ошибок». Конечно нет. Весь код внутри этих коротких тегов игнорируется PHP. – NullUserException

+0

@NullUserException: поскольку у вас есть короткие теги, отключенные из php.ini :) – Sarfraz

+0

Использование коротких тегов довольно хорошо, пока вы получили контроль над средой, в которой они используются. Короткие теги не поощряются, если вам нужно распространять программное обеспечение, потому что тогда вы больше не обладаете этим контролем. –

6

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

С ручной (http://www.php.net/manual/en/language.basic-syntax.phpmode.php):

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

-1

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

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

+0

Это абсолютно неверно. – NullUserException

+0

Это уже не так (как описано здесь: http://terrychay.com/article/short_open_tag.shtml) – Gabe

+1

Из руководства: «Примечание. Также обратите внимание, что если вы внедряете PHP в XML или XHTML, вам нужно будет используйте теги , чтобы они соответствовали стандартам ». –

1

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

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.

- Description of core php.ini directives

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

1

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

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

+0

"..., чтобы оставаться совместимыми со стандартами ». Это не совсем так. Соответствие стандартам XHTML сгенерированной разметки одинаково независимо от используемых php-тегов. – NullUserException

1

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

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

RE:« не будет работать в будущих версиях PHP »- есть ли у вас документация из этого? –

0

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

+0

Не совсем. См. комментарии выше. –

Смежные вопросы