Есть ли вред в выводе HTML по сравнению с использованием эха? - PullRequest
1 голос
/ 29 января 2011

Я понятия не имею, как это сказать, но я могу это продемонстрировать:

<?php
if (true) {
echo "<h1>Content Title</h1>";
}
?>

против

<?php  if (true) {  ?>
<h1>Content Title</h1>
<?php  }  ?>

Какие различия между ними? Будут ли проблемы, вызванные не использованием эха? Просто кажется очень утомительным писать эхо "HTML-код"; все время, особенно для больших сегментов HTML.

Кроме того, бонус слава кому-то, кто может перефразировать мой вопрос лучше. :)

Ответы [ 4 ]

4 голосов
/ 29 января 2011

Между этими двумя случаями есть небольшая разница:

<?php
if (true) {
    echo "<h1>Content Title</h1>";
}
?>

Здесь, поскольку вы используете двойные кавычки в вашей строке, вы можете вставлять переменные и отображать их значения.Например:

<?php
$mytitle = 'foo';
if (true) {
    echo "<h1>$mytitle</h1>";
}
?>

В то время как во втором примере вы должны иметь эхо, заключенное в блок php:

<?php  if (true) {  ?>
    <h1><?php echo 'My Title'; ?></h1>
<?php  }  ?>

Лично я использую тот же формат, что и вашВо втором примере с немного изгиба :

<?php if (true): ?>
    <h1><?php echo $mytitle; ?></h1>
<?php endif; ?>

Я обнаружил, что это повышает читабельность, особенно когда у вас есть вложенные операторы управления.

2 голосов
/ 29 января 2011

Нет никаких существенных различий в производительности. Но вы не сможете использовать переменные в последнем, и это выглядит менее чисто IMO. С большими блоками также становится чрезвычайно трудно отслеживать {} структуры.

Вот почему существуют следующие альтернативные обозначения:

<?php if (true): ?>
<h1>Content Title</h1>
<?php endif; ?>

немного читабельнее.

0 голосов
/ 30 января 2011

Я ценю все отзывы.:)

Я обнаружил некоторые проблемы при использовании двух разных методов.

Здесь, похоже, нет реальной проблемы, за исключением того, что форматирование выглядит ужасно в источнике и утомительной природеоб этом.

<?php
if (true) {
echo "<h1>Content Title</h1>";
}
?>

Использование php таким способом может вызвать ошибку как таковую Предупреждение: Невозможно изменить информацию заголовка - заголовки уже отправлены

<?php  if (true) {  ?>
<h1>Content Title</h1>
<?php  }  ?>

Ошибка заголовков может быть решена с помощьюphp вот так

<?php ob_start(); if (true) {  ?>
<h1>Content Title</h1>
<?php  }  ob_end_flush(); ?>

Относительно того, почему и когда отправляются заголовки, я не совсем уверен ...

0 голосов
/ 29 января 2011

Это:

<?php if (true) : ?>
    <h1>Content Title</h1>
<?php endif; ?>

Так должен использоваться PHP.
Не echo HTML. Это утомительно, особенно потому, что вам нужно сбежать от определенных персонажей.

Там могут быть небольшие различия в производительности, с вышеупомянутым, вероятно, быстрее. Но это не должно иметь никакого значения. В остальном различий нет.

...