См. ответ tanascius для проблемы с линией 14. Здесь вам нужно mov es, word [startaddr]
.
Линии 20 и 28 имеют общую проблему. Nasm требует синтаксиса mov [es:di],al
. Не требуется префикс размера - он неявный в регистровом операнде.
Им не рекомендуют, потому что это - ЛАВАШ, если когда-нибудь необходимо перемещать код в сервер, где это не поддерживало (и Вы не можете включить его). Как Вы говорите, много общих хостов делает поддержка shorttags, но "партии" не все они. Если Вы хотите совместно использовать свои сценарии, лучше использовать полный синтаксис.
я соглашаюсь, что <?
и <?=
легче на программистах, чем <?php
и <?php echo
, но возможно сделать, объем находит и заменяет, пока Вы используете ту же форму каждый раз (и не отказывайтесь от пробелов (например: <? php
или <? =
)
я не покупаю удобочитаемость как причину вообще. Большинство серьезных разработчиков имеет опцию в наличии подсветки синтаксиса им.
, Поскольку ThiefMaster упоминает в комментариях, с PHP 5.4, <?= ... ?>
, теги поддерживаются везде, независимо от shorttags настроек . Это должно означать, что их безопасно использовать в портативном коде, но это действительно означает, что существует тогда зависимость от PHP 5.4 +. Если Вы захотите поддерживать пред5.4 и не сможете гарантировать shorttags, необходимо будет все еще использовать <?php echo ... ?>
.
кроме того, необходимо знать, что ASP отмечает < %, %>, < % =, и тег script удален из PHP 7. Таким образом, если бы Вы хотели бы поддерживать долгосрочный портативный код и хотели бы переключиться на самые современные инструменты, рассматривают изменение, которое это разделяет кода.
Нет, и они постепенно сокращаемый PHP 6 поэтому, если Вы цените долговечность кода, просто не используйте их или <% ... %>
теги.
Одна ситуация, которая немного отличается, при разработке приложение CodeIgniter . CodeIgniter, кажется, использует shorttags каждый раз, когда PHP используется в шаблоне/представлении, иначе с моделями и контроллерами, это всегда использует длинные теги. Это не жесткое правило в платформе, но по большей части платформа и много источника от другого использования следуют этому соглашению.
Мои два цента? Если Вы никогда не планируете выполнение кода где-то в другом месте, то используйте их, если Вы хотите. Я не должен делать крупного поиска и замены, когда я понимаю, что это была немая идея.
При заботе [приблизительно 114] о XSS тогда, необходимо использовать <?= htmlspecialchars(…) ?>
большую часть времени, таким образом, короткий тег не имеет большое значение.
, Даже если Вы сокращаетесь echo htmlspecialchars()
к h()
, это - все еще проблема, что необходимо не забыть добавлять его почти каждый раз, когда (и пытающийся отслеживать, каких данных предварительно оставляют, который не завершен-но-безопасен, только делает ошибки более вероятно).
я использую механизм шаблонной обработки , который безопасен по умолчанию и записи <?php
теги для меня.
Короткие теги не включены по умолчанию в некоторых веб-серверах (совместно использованные хосты, и т.д.), таким образом переносимость кода становится проблемой, если необходимо переместиться в один из них.
Удобочитаемость может быть проблемой для некоторых. Многие разработчики могут найти, что <?php
привлекает внимание как более очевидный маркер начала блока кода, чем <?
, когда Вы сканируете файл, особенно если Вы застреваете с кодовой базой с HTML и PHP, плотно вплетенный.
Короткие теги возвращаются благодаря Платформа Зенда продвижение" PHP как шаблонный язык " в их конфигурация MVC по умолчанию . Я не вижу то, о чем дебаты, большая часть программного обеспечения, которое Вы произведете в течение своего времени жизни, будет воздействовать на сервер, которым Вы или Ваша компания будете управлять. Пока Вы сохраняете себя последовательными, не должно быть никаких проблем.
ОБНОВЛЕНИЕ
После выполнения довольно мало работы с Magento, который использует подробную форму. В результате я переключился на длинную форму:
<?php and <?php echo
[более чем 119]
<? and <?=
Походят на небольшое количество работы для уверения совместимости.
Поскольку беспорядок это может генерировать с определениями XML. Многие люди соглашаются с Вы, все же.
дополнительное беспокойство является болью, которую оно генерировало бы для кодирования всего с короткими тегами только, чтобы узнать в конце, что заключительному хостинг-серверу выключили их...
Я слишком люблю <?=$whatever?>
, чтобы позволить ему пойти. Никогда не имел проблему с ним. Я буду ожидать, пока это не укусит меня в заднице. Во всей серьезности у 85% (моих) клиентов есть доступ к php.ini в редкий случай, они выключены. Другие 15%-е основные поставщики услуг хостинга использования, и фактически всем им включили их. Я люблю их.
По состоянию на 2019 я не соглашаюсь с определенными ответами здесь. Я рекомендую использовать долгие теги
<?php /* code goes here */ ?>
или короткие теги эха
<?= /* code goes here */ ?>
Причина: Им рекомендуют стандарт программирования в абсолютных адресах PSR-1
, Другие короткие теги как <? /* code goes here */ ?>
не рекомендуются.
спецификация говорит:
код PHP ДОЛЖЕН использовать долгие теги или теги короткого эха; это не ДОЛЖНО использовать другие изменения тега .
3 тега доступны в php:
<?php ?>
никакая потребность к директиве любой настроенный <? ?>
доступный, если short_open_tag опция в php.ini находится на <?=
с тех пор php 5.4.0, это всегда доступно от php 7.0.0 asp и тег script, удален
С учетом сказанного, мой друг сказал это в поддержку альтернативного стандартизованного asp теги -style, например <%
, а не
, который является параметром asp_tags в php.ini. Вот его рассуждения:
... произвольные соглашения должны быть стандартизированный . То есть в любое время, когда мы столкнулся с рядом возможностей, которые все равноценны - например, что странная пунктуация наше программирование язык следует использовать для разграничения сам по себе - мы должны выбрать один стандарт путь и придерживаться его. Таким образом мы сократить кривую обучения всех языки (или что-то еще соглашение относится к).
Звучит хорошо, но я не думаю, что кто-то из нас может объехать фургоны вокруг этого дела. А пока я бы придерживался полной версии Php
.
Посмотрим правде в глаза. Без коротких тегов PHP чертовски уродлив.
Вы можете включить их в файле .htaccess
, если не можете получить доступ к php.ini
:
php_flag short_open_tag on
Проблема всего этого обсуждения заключается в использовании PHP в качестве языка шаблонов. Никто не утверждает, что теги должны использоваться в исходных файлах приложений.
Однако встраиваемый синтаксис PHP позволяет использовать его в качестве мощного языка шаблонов, а шаблоны должны быть как можно более простыми и удобочитаемыми. Многие считают, что проще использовать гораздо более медленный дополнительный механизм шаблонов, такой как Smarty, но для тех пуристов среди нас, которые требуют быстрого рендеринга и чистой кодовой базы, PHP - единственный способ писать шаблоны.
ЕДИНСТВЕННЫЙ действительный Аргументом ПРОТИВ использования коротких тегов является то, что они не поддерживаются на всех серверах. Комментарии о конфликтах с XML-документами смехотворны, потому что вам, вероятно, в любом случае не следует смешивать PHP и XML; и если да, то вы должны использовать PHP для вывода строк текста. Безопасность никогда не должна быть проблемой, потому что если вы помещаете конфиденциальную информацию, такую как учетные данные для доступа к базе данных, в файлы шаблонов, тогда у вас есть более серьезные проблемы!
Теперь что касается вопроса поддержки сервера, по общему признанию, один должен знать свою целевую платформу. Если виртуальный хостинг является вероятной целью, следует избегать коротких тегов. Но для многих профессиональных разработчиков (таких как я) клиент признает (и действительно, это зависит от факта), что мы будем диктовать требования к серверу. Часто я сам отвечаю за настройку сервера.
И мы НИКОГДА не работаем с хостинг-провайдером, который не дает нам абсолютного контроля над конфигурацией сервера - в таком случае мы можем рассчитывать на гораздо больше проблем, чем просто потеря поддержки коротких тегов. Этого просто не бывает.
Так что да - я согласен с тем, что использование коротких тегов должно быть тщательно взвешено. Но я также твердо уверен, что это ВСЕГДА должно быть вариантом, и что разработчик, знающий о своей среде, должен свободно использовать их.
Я прочитал эту страницу после того, как искал информацию по теме, и мне кажется, что не упоминалась одна важная проблема: лень против последовательности. «Настоящие» теги для PHP - это Php и?>. Почему? Мне все равно. Зачем вам использовать что-то еще, если это явно для PHP? <% и%> для меня означают ASP, а