Являются ли короткие теги PHP приемлемыми для использования?

См. ответ tanascius для проблемы с линией 14. Здесь вам нужно mov es, word [startaddr].

Линии 20 и 28 имеют общую проблему. Nasm требует синтаксиса mov [es:di],al. Не требуется префикс размера - он неявный в регистровом операнде.

515
задан Peter Mortensen 15 April 2014 в 12:17
поделиться

14 ответов

Им не рекомендуют, потому что это - ЛАВАШ, если когда-нибудь необходимо перемещать код в сервер, где это не поддерживало (и Вы не можете включить его). Как Вы говорите, много общих хостов делает поддержка shorttags, но "партии" не все они. Если Вы хотите совместно использовать свои сценарии, лучше использовать полный синтаксис.

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

я не покупаю удобочитаемость как причину вообще. Большинство серьезных разработчиков имеет опцию в наличии подсветки синтаксиса им.

, Поскольку ThiefMaster упоминает в комментариях, с PHP 5.4, <?= ... ?>, теги поддерживаются везде, независимо от shorttags настроек . Это должно означать, что их безопасно использовать в портативном коде, но это действительно означает, что существует тогда зависимость от PHP 5.4 +. Если Вы захотите поддерживать пред5.4 и не сможете гарантировать shorttags, необходимо будет все еще использовать <?php echo ... ?>.

кроме того, необходимо знать, что ASP отмечает < %, %>, < % =, и тег script удален из PHP 7. Таким образом, если бы Вы хотели бы поддерживать долгосрочный портативный код и хотели бы переключиться на самые современные инструменты, рассматривают изменение, которое это разделяет кода.

369
ответ дан UnstableFractal 15 April 2014 в 12:17
поделиться

Нет, и они постепенно сокращаемый PHP 6 поэтому, если Вы цените долговечность кода, просто не используйте их или <% ... %> теги.

-6
ответ дан meagar 15 April 2014 в 12:17
поделиться

Одна ситуация, которая немного отличается, при разработке приложение CodeIgniter . CodeIgniter, кажется, использует shorttags каждый раз, когда PHP используется в шаблоне/представлении, иначе с моделями и контроллерами, это всегда использует длинные теги. Это не жесткое правило в платформе, но по большей части платформа и много источника от другого использования следуют этому соглашению.

Мои два цента? Если Вы никогда не планируете выполнение кода где-то в другом месте, то используйте их, если Вы хотите. Я не должен делать крупного поиска и замены, когда я понимаю, что это была немая идея.

3
ответ дан Peter Mortensen 15 April 2014 в 12:17
поделиться
  • Короткие теги не включены по умолчанию в некоторых веб-серверах (совместно использованные хосты, и т.д.), таким образом переносимость кода становится проблемой, если необходимо переместиться в один из них.

  • Удобочитаемость может быть проблемой для некоторых. Многие разработчики могут найти, что <?php привлекает внимание как более очевидный маркер начала блока кода, чем <?, когда Вы сканируете файл, особенно если Вы застреваете с кодовой базой с HTML и PHP, плотно вплетенный.

12
ответ дан Peter Mortensen 15 April 2014 в 12:17
поделиться

Короткие теги возвращаются благодаря Платформа Зенда продвижение" PHP как шаблонный язык " в их конфигурация MVC по умолчанию . Я не вижу то, о чем дебаты, большая часть программного обеспечения, которое Вы произведете в течение своего времени жизни, будет воздействовать на сервер, которым Вы или Ваша компания будете управлять. Пока Вы сохраняете себя последовательными, не должно быть никаких проблем.

ОБНОВЛЕНИЕ

После выполнения довольно мало работы с Magento, который использует подробную форму. В результате я переключился на длинную форму:

<?php and <?php echo

[более чем 119]

<? and <?=

Походят на небольшое количество работы для уверения совместимости.

33
ответ дан Jake McGraw 15 April 2014 в 12:17
поделиться

Поскольку беспорядок это может генерировать с определениями XML. Многие люди соглашаются с Вы, все же.

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

20
ответ дан Vinko Vrsalovic 15 April 2014 в 12:17
поделиться

Я слишком люблю <?=$whatever?>, чтобы позволить ему пойти. Никогда не имел проблему с ним. Я буду ожидать, пока это не укусит меня в заднице. Во всей серьезности у 85% (моих) клиентов есть доступ к php.ini в редкий случай, они выключены. Другие 15%-е основные поставщики услуг хостинга использования, и фактически всем им включили их. Я люблю их.

172
ответ дан Paolo Bergantino 15 April 2014 в 12:17
поделиться

По состоянию на 2019 я не соглашаюсь с определенными ответами здесь. Я рекомендую использовать долгие теги

<?php /* code goes here */ ?>

или короткие теги эха

<?= /* code goes here */ ?>

Причина: Им рекомендуют стандарт программирования в абсолютных адресах PSR-1

, Другие короткие теги как <? /* code goes here */ ?> не рекомендуются.

спецификация говорит:

код PHP ДОЛЖЕН использовать долгие теги или теги короткого эха; это не ДОЛЖНО использовать другие изменения тега .

0
ответ дан 22 November 2019 в 22:31
поделиться

3 тега доступны в php:

  1. подробный тег, что <?php ?> никакая потребность к директиве любой настроенный
  2. short_open_tag, которые <? ?> доступный, если short_open_tag опция в php.ini находится на
  3. , сокращают тег <?= с тех пор php 5.4.0, это всегда доступно

от php 7.0.0 asp и тег script, удален

0
ответ дан 22 November 2019 в 22:31
поделиться
  • Короткие теги приемлемы для использования в тех случаях, когда вы уверены, что сервер будет его поддерживать и что ваши разработчики это поймут.
  • Многие серверы не поддерживают его, и многие разработчики поймут после того, как увидел это однажды.
  • Я использую полные теги для обеспечения переносимости, так как это действительно не так уж и плохо.

С учетом сказанного, мой друг сказал это в поддержку альтернативного стандартизованного asp теги -style, например <% , а не , который является параметром asp_tags в php.ini. Вот его рассуждения:

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

Звучит хорошо, но я не думаю, что кто-то из нас может объехать фургоны вокруг этого дела. А пока я бы придерживался полной версии .

2
ответ дан 22 November 2019 в 22:31
поделиться

Посмотрим правде в глаза. Без коротких тегов PHP чертовски уродлив.

Вы можете включить их в файле .htaccess , если не можете получить доступ к php.ini :

php_flag short_open_tag on
3
ответ дан 22 November 2019 в 22:31
поделиться

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

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

ЕДИНСТВЕННЫЙ действительный Аргументом ПРОТИВ использования коротких тегов является то, что они не поддерживаются на всех серверах. Комментарии о конфликтах с XML-документами смехотворны, потому что вам, вероятно, в любом случае не следует смешивать PHP и XML; и если да, то вы должны использовать PHP для вывода строк текста. Безопасность никогда не должна быть проблемой, потому что если вы помещаете конфиденциальную информацию, такую ​​как учетные данные для доступа к базе данных, в файлы шаблонов, тогда у вас есть более серьезные проблемы!

Теперь что касается вопроса поддержки сервера, по общему признанию, один должен знать свою целевую платформу. Если виртуальный хостинг является вероятной целью, следует избегать коротких тегов. Но для многих профессиональных разработчиков (таких как я) клиент признает (и действительно, это зависит от факта), что мы будем диктовать требования к серверу. Часто я сам отвечаю за настройку сервера.

И мы НИКОГДА не работаем с хостинг-провайдером, который не дает нам абсолютного контроля над конфигурацией сервера - в таком случае мы можем рассчитывать на гораздо больше проблем, чем просто потеря поддержки коротких тегов. Этого просто не бывает.

Так что да - я согласен с тем, что использование коротких тегов должно быть тщательно взвешено. Но я также твердо уверен, что это ВСЕГДА должно быть вариантом, и что разработчик, знающий о своей среде, должен свободно использовать их.

81
ответ дан 22 November 2019 в 22:31
поделиться

Я прочитал эту страницу после того, как искал информацию по теме, и мне кажется, что не упоминалась одна важная проблема: лень против последовательности. «Настоящие» теги для PHP - это . Почему? Мне все равно. Зачем вам использовать что-то еще, если это явно для PHP? <% и%> для меня означают ASP, а