输出html与使用echo有什么不同吗?
我不知道真的怎么说,但我可以证明它:输出html与使用echo有什么不同吗?
<?php
if (true) {
echo "<h1>Content Title</h1>";
}
?>
VS
<?php if (true) { ?>
<h1>Content Title</h1>
<?php } ?>
两者之间有什么区别?会不会有使用回声造成的问题?编写echo“html代码”似乎非常繁琐;所有的时间,特别是对于更大的HTML段。
另外,对可以更好地更改我的问题的人给予奖励。 :)
有两种情况之间的微小差异:
<?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; ?>
我发现它增加了可读性,尤其是当你有嵌套控制语句。
性能方面没有相关差异。但是你不能在后者中使用变量,而且它看起来不那么干净。对于大块,跟踪{}
结构也变得非常困难。
这就是为什么下面的替代符号存在:
<?php if (true): ?>
<h1>Content Title</h1>
<?php endif; ?>
它稍微更具可读性。
其实,有一个性能差异(见http://www.codingforums.com/archive/index.php/t-117488.html) – 2011-01-29 01:36:22
@Rafe true ...但可以说不是一个巨大的*一个(20ms为50 Lorem Ipsum的段落,这远远超过一个普通的HTML页面将永远包含) – 2011-01-29 01:42:32
此:
<?php if (true) : ?>
<h1>Content Title</h1>
<?php endif; ?>
这是PHP应该被使用的方式。
不要echo
HTML。这很乏味,尤其是因为你必须逃避某些角色。
可能会有轻微的性能差异,以上可能会更快。但它根本不重要。否则,没有区别。
我很欣赏所有的反馈。 :)
当使用两种不同的方法时,我确实发现了一些问题。
这里似乎没有任何真正的问题,除了格式在源代码和繁琐的特性上看起来很糟糕。
<?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(); ?>
至于为什么和何时发送标题,我不完全确定...
我个人*讨厌*输出大块文字时使用回声,但YMMV。 ;)你可能会遇到一些转义角色的问题,但我想不出其他的。 – Illianthe 2011-01-29 01:34:46
不确定是否有任何_real_差异。对我而言,第一个使用起来更麻烦(转义引号和其他字符),但在6个月后查看代码时比第二个更容易阅读。 – aqua 2011-01-29 01:35:56