<? php вместо <? - PullRequest
       32

<? php вместо <?

11 голосов
/ 10 февраля 2009

Почему я должен использовать <?php вместо <? в моем php-скрипте?

Ответы [ 10 ]

29 голосов
/ 10 февраля 2009

Две основные причины, по которым следует избегать короткого открывающего тега:

  1. Максимальная переносимость - <?php будет работать на каждом сервере с поддержкой PHP, но <? можно отключить
  2. Это идентично открытию преамбулы XML - может вызвать синтаксический анализ или головную боль при выполнении
7 голосов
/ 10 февраля 2009

Есть два способа запустить PHP

<?php

и

<?

PHP также включает в себя

<?=

Но это выведет переменную, стоящую за ней, поскольку это сокращение для echo.

Вам следует использовать <? Php, поскольку он совместим со всеми типами серверов. Вы можете переместить свой код в новое решение для хостинга или настроить новый сервер по умолчанию, и сокращения могут быть отключены. </p>

5 голосов
/ 10 февраля 2009

Короткие теги <?<?=) могут быть отключены. Длинная версия <?php<?= = <?php echo) работает везде.

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

3 голосов
/ 10 февраля 2009

Я лично предпочитаю отключить <? по двум причинам

  1. Стандарты кодирования PHP во многих крупных проектах PHP рекомендуют его отключать
  2. Создает проблемы, если вы генерируете документы XML (документы XML начинаются с <?xml version="1.0" encoding="UTF-8" ?>)
  3. (бонус) <?php более читабелен и заметен, чем <?.
3 голосов
/ 10 февраля 2009

Оба семантически одинаковы. <? - это просто сокращение для полного синтаксиса.

2 голосов
/ 10 февраля 2009

Чтобы добавить к объяснению каждого, что короткие теги не следует использовать, поскольку они могут быть отключены (или даже удалены из будущих версий PHP), основное обоснование того, что короткие теги не рекомендуется использовать, состоит в том, что они не являются допустимыми XML. msgstr "в то время как теги <?php Таким образом, шаблоны PHP с тегами <?php ... ?> могут быть действительными документами XML, в то время как те, которые используют короткие теги, не являются.

1 голос
/ 07 марта 2009

Все аргументы переносимости хороши и хороши, но я буду кощунственным и скажу, что вы должны идти вперед и использовать короткие теги, если хотите, если вы не делаете что-то, что предназначено для действительно широкого распространения источник), или делают что-то очень ориентированное на xml.

а) Я никогда не был в ситуации, когда я не мог включить короткие теги. Обычно они включены по умолчанию.

b) В большинстве ситуаций <? не будет путать с <?xml, потому что они анализируются на разных уровнях стека.

в) короткий тег менее навязчив и поэтому меньше загромождает ваш код. Я считаю это особенно верно с <?php echo против <?=. (Вы можете возразить, что вам вообще следует избегать использования любого из них, потому что это, вероятно, означает, что вы пишете код для спагетти, но давайте - это php!)

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

1 голос
/ 10 февраля 2009

Следует отметить, что некоторые конфигурации серверов PHP не поддерживают ни одну, ни другую из коробки. Например, мой веб-сервер не поддерживает <? но поддерживает <? php </p>

0 голосов
/ 10 февраля 2009

Поддержка краткого синтаксиса <? / <?= основана на параметре short_open_tag в php.ini . Если вы размещаете свою собственную кодовую базу, включить ее тривиально. Однако на совместно используемом / управляемом веб-узле этот параметр может не контролироваться.

Таким образом, для максимальной переносимости вы должны использовать синтаксис длинной формы.

0 голосов
/ 10 февраля 2009

Стандарты кодирования Wordpress говорит только о использовании <?php. Они не объясняют почему.

Это может быть религиозный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...