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 и изменить дизайн страницы.
Я предпочитаю второй вариант, потому что гораздо проще сказать вашему дизайнеру, что "эта часть страницы будет вести себя так", чем "эта часть кода делает это"