Php echo vs open & close tag

Просто чтобы уточнить: проблемы "эхо против печати" и "двойные кавычки против одинарных кавычек" прекрасно поняты, речь идет о другом:

Есть ли какие-либо причины, по которым вы предпочитаете:

echo '<table>';   
foreach($lotsofrows as $row)
{
    echo '<tr><td>',$row['id'],'</td></tr>';   
}
echo '<table>';

над

<table><?php
       foreach($lotsofrows as $row)
       { ?>
           <tr>
              <td><?php echo $row['id']; ?></td>
           </tr><?php
       } ?>
</table>

будет либо один раз выполнять/разбирать быстрее? более элегантный? (И т.д.).

Я имею тенденцию использовать второй вариант, но я волнуюсь, что, возможно, я упускаю из виду что-то очевидное/важное.

Ответы

Ответ 1

Преимущества первого

  • Легче читать
  • ???

Преимущества второго

  • WYSIWYG возможно
  • Выполнение HTML-кода/соответствие меток возможно с некоторыми IDE
  • Отсутствие головных болей
  • Легче для больших фрагментов HTML

Если у меня много HTML-кода в данной PHP-процедуре (например, MVC-представление), я определенно использую второй метод. Но я отформатирую его по-другому - я строго полагаюсь на тег-подобную природу демаркаций PHP, т.е. Я делаю разделы PHP похожими на теги HTML, как я могу

<table>
  <?php foreach($lotsofrows as $row) { ?>
  <tr>
    <td><?php echo $row['id']; ?></td>
  </tr>
  <?php } ?>
</table>

Ответ 2

Я согласен с Питером Бейли. Однако в представлениях я использую альтернативный синтаксис для операторов и предпочитаю короткие теги (особенно для эха). Таким образом, приведенный выше пример будет читать:

 <table> 
  <? foreach($lotsofrows as $row): ?>
  <tr>
    <td><?= $row['id']; ?></td>
  </tr>
  <? endforeach; ?>
 </table>

Я считаю, что это предпочтительный стандарт для Zend Framework.

Ответ 3

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

Преждевременная оптимизация - это корень всего зла. Сделайте то, что делает код проще всего читать и поддерживать. Эффективность занимает заднее сиденье для ремонтопригодности.

см. http://en.wikipedia.org/wiki/Optimization_%28computer_science%29#When_to_optimize за хороший совет по теме

Ответ 4

Лучший из них - механизм шаблонов.

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

Ответ 5

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

Итак, второй стиль более полезен в шаблонах с большим количеством разметки html и небольшими точками кода, сначала - для "четкого" программирования php.

Ответ 6

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

Я предпочитаю второй вариант, потому что гораздо проще сказать вашему дизайнеру, что "эта часть страницы будет вести себя так", чем "эта часть кода делает это"