几个<! - ?php? - >块vs单一(语义和功能)

时间:2014-02-11 12:56:42

标签: php performance semantics

我一直看到的是

<?php $page_title = ""; ?>
<?php include_once("inc/header.php"); /* Include Header */ ?>

<?php 
$page_title = ""; 
include_once("inc/header.php"); /* Include Header */ 
?>

我认为功能上没有区别(但不确定),但是如果你在几个php块中声明所有的php或者单个一个,那么语义/正确是否重要?性能是否会受到影响?

2 个答案:

答案 0 :(得分:1)

对此没有真正的答案。

有些人喜欢将它设置为“Code-Block” - 并将其全部放在一组标签中,其他一些人更喜欢“HTML-Tag” - 他们将每个命令放在一组新的标签中

除了一个?>和下一个<?php之间的所有内容都得到回声之外,功能没有区别(所以你的输出HTML中有很多空格,这没关系,因为他们被忽略了)

性能可能会受到影响,但在数量上你真的不需要关心。

通常,如果您使用的是模板(或者说,混合使用PHTML,HTML和PHP),请尝试将所有命令保持为单行(将所有单个命令放在<?php ?>和自己的行中),这将使其在所有HTML标记之间更具可读性。

如果您的PHP文件中没有HTML,则没有理由用PHP标记包含所有命令

答案 1 :(得分:1)

这是为什么你的PHP内联不合时宜的一个主要原因。我所知道的并没有打击性能。所有<?php ?>都告诉解释器这将由PHP处理,因此您的第一个代码块正在说

  

停止解析PHP
  开始解析PHP

我想如果你试图将最后一盎司的效率拧掉,那么某处会有一些微不足道的打击,但我认为这是微不足道的。对用户来说很重要的是,如果你正在使用操作码缓存(并且你应该),那么唯一的命中就是在解析端。重复执行缓存会产生0效果。

但是,可读性确实要求您的代码尽可能紧凑。请记住,有人可能会来到你身后并处理这段代码。有两个块只需要一个是低效的。