输出html与使用echo有害吗?

时间:2011-01-29 01:30:43

标签: php html tags echo

我不知道该怎么说,但我可以证明:

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

VS

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

两者之间有什么不同?不使用echo会导致问题吗?写回声“html代码”似乎超级乏味;一直以来,特别是对于较大的html片段。

此外,奖励可以更好地改写我的问题的人。 :)

4 个答案:

答案 0 :(得分:4)

两种情况之间存在细微差别:

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

这里,因为您在字符串中使用double quotes,所以可以插入变量并渲染其值。例如:

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

然而在你的第二个例子中,你必须在php块中包含一个回声:

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

就个人而言,我使用与第二个示例相同的格式,a bit of a twist

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

我发现它增加了可读性,特别是当你有嵌套的控制语句时。

答案 1 :(得分:2)

在性能方面没有相关差异。但是你不能在后者中使用变量,它看起来不那么干净的IMO。对于大块,跟踪{}结构也变得非常困难。

这就是为什么存在以下备选表示法的原因:

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

它的可读性略高。

答案 2 :(得分:0)

此:

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

这是应该使用PHP的方式 不要echo HTML。这很乏味,特别是因为你必须逃避某些角色。

可能存在轻微的性能差异,上述情况可能更快。但它根本不重要。否则,没有差异。

答案 3 :(得分:0)

我很感谢所有的反馈。 :)

使用两种不同的方法时,我确实发现了一些问题。

这里似乎没有任何真正的问题,除了格式在源头和它的繁琐性质上看起来很糟糕。

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

以这种方式使用php会导致错误 警告:无法修改标头信息 - 已发送的标头

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

标题错误可以通过使用像这样的

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

至于发送标题的原因和时间,我不完全确定......