我不知道该怎么说,但我可以证明:
<?php
if (true) {
echo "<h1>Content Title</h1>";
}
?>
VS
<?php if (true) { ?>
<h1>Content Title</h1>
<?php } ?>
两者之间有什么不同?不使用echo会导致问题吗?写回声“html代码”似乎超级乏味;一直以来,特别是对于较大的html片段。
此外,奖励可以更好地改写我的问题的人。 :)
答案 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(); ?>
至于发送标题的原因和时间,我不完全确定......