Просто для уточнения: проблемы «эхо против печати» и «двойные кавычки против одинарных кавычек» прекрасно поняты, речь идет о другом :
Есть ли причины, по которым вы бы предпочли:
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>
будет ли один выполнить / разбор быстрее? более элегантный? (и т.д.)
Я предпочитаю использовать второй вариант, но я волнуюсь, что, возможно, я буду забывать о чем-то очевидном / существенном.
Преимущества первого
Преимущества второго
Если у меня много HTML в данной PHP-процедуре (например, MVC-представление), то я определенно использую второй метод. Но я отформатирую его по-другому – я строго полагаюсь на тег-подобный характер демаркаций PHP, т. Е. Я делаю разделы PHP похожими на теги HTML, как я могу
<table> <?php foreach($lotsofrows as $row) { ?> <tr> <td><?php echo $row['id']; ?></td> </tr> <?php } ?> </table>
Я согласен с Питером Бейли. Однако в представлениях я использую альтернативный синтаксис для операторов и предпочитаю короткие теги (особенно для эха). Таким образом, приведенный выше пример будет выглядеть следующим образом:
<table> <? foreach($lotsofrows as $row): ?> <tr> <td><?= $row['id']; ?></td> </tr> <? endforeach; ?> </table>
Я считаю, что это предпочтительный стандарт для Zend Framework.
Первое, на мой взгляд, гораздо более читаемо, однако второе технически связано с меньшим количеством парсинга. Любое преимущество скорости в этом случае, вероятно, будет незначительным и действительно бессмысленным без профилирования.
Преждевременная оптимизация – это корень всего зла. Сделайте то, что делает код проще всего читать и поддерживать. Эффективность занимает заднее сиденье для ремонтопригодности.
см. http://en.wikipedia.org/wiki/Optimization_%28computer_science%29#When_to_optimize за некоторые полезные советы по этому вопросу
Это очень надёжно, что вы пишете. PHP может использоваться как язык программирования, или как простой и мощный язык веб-шаблонов. Смешивание этих двух обычаев очень, очень плохая практика и будет ужасно поддерживать в долгосрочной перспективе.
Таким образом, второй стиль более удобен в шаблонах с большим количеством разметки html и небольшими точками кода, во-первых – для «четкого» программирования php.
Лучший из них – механизм шаблонов.
Но, я думаю, эхо является более чистым и более читаемым (по крайней мере, в этом случае – как указано в комментариях, это зависит), чем открывать и закрывать теги во всем мире (я не слишком много знаю о внутренностях PHP, чтобы сообщить, какой из них быстрее, хотя).
Первый из них более читабельен с точки зрения программирования, но второй позволяет вам открыть файл в HTML-редакторе WYSIWYG и изменить дизайн страницы.
Я предпочитаю второй вариант, потому что гораздо проще сказать вашему дизайнеру, что «эта часть страницы будет вести себя так», чем «эта часть кода делает это»,