испортит форматирование источника, и я должен сделать что-то вроде этого:
<div id="foo">
<div class="bar">
<?
foreach(whatever)
{
?>
</div>
</div>
важно , чтобы исходный код PHP читался, чтобы вы могли легко его поддерживать. совсем не важно , чтобы сделать все отступы красивыми для 0,0001% людей, которые будут "просматривать источники". Приведенный выше фрагмент кода только усложняет вам задачу.
В источнике [HTML] это выглядит так:
<span>Blah blah HTML</span>
{$this->foo whatever it is} <br />
Это не для меня, новая строка появляется там, где вы ожидаете. Но все равно, кого это волнует? Пока сама разметка верна и компактна, у вас все в порядке.
Посмотрите на пример JimR с использованием PHP в стиле хорошо вложенных начальных и конечных тегов. Это хороший подход к удобству сопровождения, поскольку он поддерживает единую иерархию кода и разметки, а не переключается между вложенными уровнями отступов постоянно.
Для меня это также имеет побочный эффект от предоставления исходного кода HTML с согласованным деревом отступов. В нем больше пустых строк и больше отступов, чем строго необходимо, но опять же, кого это волнует? Дополнительный пробел, делающий файл больше, не проблема; сжатие «на лету», например, mod_deflate, сведет это на нет.
Обратите внимание, что «альтернативный синтаксис», используемый в JimR, необязателен для использования этой техники, он также отлично работает с фигурными скобками и является вопросом личного вкуса, который вы выбираете:
<?php
$replyn= count($replies);
?>
<?php if ($replyn)==0) {?>
<p> (no replies.) </p>
<?php } else { ?>
<h3> Replies </h3>
<?php for ($i= 0; $i<$replyn; $i++) { ?>
<p>
<?php echo(htmlspecialchars($replies[$i], ENT_QUOTES)); ?>
</p>
<?php } ?>
<?php } ?>
(Хотя лично я использую функцию быстрого вызова, чтобы не вводить echo(htmlspecialchars))
постоянно. Если вы не используете htmlspecialchars, возможно, у вас проблемы с безопасностью.)
В этом примере используются полные теги <?php
для запуска, разрешены ли короткие теги. В конечном счете, хотя я согласен с JimR, что полные теги, как они есть, являются пустой тратой времени.
(Было бы хорошей идеей сделать PHP более совместимым с инструкциями обработки XML, но, поскольку они никогда не использовали способ шаблонирования тегов PHP в значения атрибутов, по-прежнему невозможно создать страницу PHP, которая также сформировал XML, что делает упражнение немного бессмысленным.)