#php #foreach
#php #foreach
Вопрос:
В настоящее время я использую приведенный ниже PHP foreach код. Когда я просматриваю исходный код, это гигантский блок элементов списка.
Мой вопрос в том, как я могу отредактировать это, чтобы каждый элемент списка в исходном коде находился в отдельной строке для упрощения отладки?
foreach($xml->Event as $event) {
echo '<li><a href="', $event->link, '">';
echo '<strong>', $event->title, '</strong>';
echo '<span>', $event->beginDate, ' at ', $event->beginTime, '</span>';
echo $event->location;
echo '</a></li>';
}
Ответ №1:
Вот так:
foreach($xml->Event as $event) {
echo '<li><a href="', $event->link, '">';
echo '<strong>', $event->title, '</strong>';
echo '<span>', $event->beginDate, ' at ', $event->beginTime, '</span>';
echo $event->location;
echo '</a></li>' . "n";
}
Просто добавьте . "n"
к последней строке в вашем цикле.
Комментарии:
1. Следует отметить, что n должен быть заключен в двойные кавычки . Одинарная кавычка (она же апостроф) работать не будет.
Ответ №2:
Используйте новую строку ‘n’ или PHP_EOL
в конце каждой строки
Ответ №3:
Попробуйте изменить последнюю строку, чтобы включить разрыв строки:
echo '</a></li>' . PHP_EOL;
Комментарии:
1. Следует отметить, что
PHP_EOL
не обязательно использовать при выводе HTML-кода (поскольку это зависит от операционной системы, и разрывы строк могут отображаться должным образом на компьютере с Unix, но не на компьютере с Windows)
Ответ №4:
Добавьте все ваши строки либо "n"
(убедитесь, что вы используете двойные кавычки), либо PHP_EOL
.
echo '</a></li>' . "n";
// or
echo '</a></li>' . PHP_EOL;
Ответ №5:
Используйте n
.
foreach($xml->Event as $event) {
echo '<li><a href="', $event->link, '">' . "n";
echo '<strong>', $event->title, '</strong>' . "n";
echo '<span>', $event->beginDate, ' at ', $event->beginTime, '</span>' . "n";
echo $event->location . "n";
echo '</a></li> . "n"';
}
Ответ №6:
Я бы написал код следующим образом:
<?php foreach($xml->Event as $event) { ?>
<li>
<a href="<?php echo $event->link; ?>">
<strong><?php echo $event->title; ?></strong>
<span><?php echo $event->beginDate; ?> at <?php echo $event->beginTime; ?></span>
<?php echo $event->location; ?>
</a>
</li>
<?php } ?>
Комментарии:
1. спасибо за ваш ответ. Просто любопытно, приводит ли этот подход к повышению производительности? Или это просто более стандартный способ кодирования частей php?
2. @Ryan — Не знаю о разнице в производительности (вероятно, не о чем беспокоиться) или о том, является ли это более стандартным. Однако для меня это читается лучше. Я никогда не повторяю HTML.
Ответ №7:
Добавьте ‘ n’ в конце каждой строки, которую вы хотите разорвать.
foreach($xml->Event as $event) {
echo '<li><a href="', $event->link, '">n';
echo '<strong>', $event->title, '</strong>n';
echo '<span>', $event->beginDate, ' at ', $event->beginTime, '</span>n';
echo $event->location;
echo '</a></li>' . "n";
}
Комментарии:
1. Убедитесь, что вы отформатировали свой ответ таким образом, чтобы в markdown код имел отступ в виде блока.
2. Это не сработало бы так, как вы это написали. Только последний
n
будет работать должным образом, поскольку он в кавычках. Предыдущие печатали бы буквальную строкуn
из-за одинарных кавычек.