Intereting Posts
объединение одной и той же таблицы дважды для разных столбцов Проверка и преобразование десятичных значений в CakePHP округленное значение десятичной запятой до второй цифры после последнего 0 Symfony Association Mapping OneToOne и OneToMany для одной и той же организации Таблица mySQL UPDATE на основе SELECT (count) другой таблицы Как хранить ежедневные записи из таблицы mysql в другую? Как удалить PHPSESSID на клиентских компьютерах mySql – создание соединения с использованием списка значений, разделенных запятыми Обновление свойств объекта в веточке Как получить все комбинации из нескольких массивов? Как предотвратить использование методов признаков из области «использования» в PHP добавить значение ключа в массив PHP-эквивалент javascript >>> shift right с нулевыми заполняющими побитовыми операторами? Как создать хранимую процедуру, содержащую DELIMITER в PHP с PDO? Удалить все файлы внутри папки, но последние?

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> 

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

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

Solutions Collecting From Web of "php echo vs open & close tag"

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

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

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

  • 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> 

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

  <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 и изменить дизайн страницы.

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