Wil*_*ild 41 html php performance
在性能方面,什么会更好.使用PHP来回显所有的HTML输出,这样我就可以使用各种工作代码和变量,或者在整个文档中定期将HTML转义为php.
我知道可能存在一些可读性问题,但我并不担心.
谢谢大家!
例1
echo '<html>',
'<body>',
'The content of the ',$container,' element is displayed in your ', $other_container,
'</body>',
'</html>';
Run Code Online (Sandbox Code Playgroud)
要么
<html>
<body>
The content of the <?php echo $container; ?> element is displayed in your <?php echo $other_container; ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
nic*_*ckf 34
这就是你发现最具可读性的一切.当然,这会因每种情况而异.如果你正在做整个页面,并且有大部分没有任何PHP,那么我将打破PHP并编写纯HTML,而如果有一个部分有很多PHP变量,我会用PHP完成所有工作.
例如:
<table>
<tr>
<td colspan="<?php echo $numCols; ?>">
<?php echo $a; ?>, <?php echo $b; ?>, and <?php echo $c?>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
与:
<?php
echo "<table>"
. "<tr>"
. "<td colspan=\"" . $numCols . "\">"
. $a . ", " . $b . " and " . $c
. "</td>"
. "</tr>"
. "</table>"
; ?>
Run Code Online (Sandbox Code Playgroud)
要么
<?php
echo "<table>
<tr>
<td colspan='{$numCols}'>
{$a}, {$b}, and {$c}
</td>
</tr>
</table>";
?>
Run Code Online (Sandbox Code Playgroud)
也别忘了 printf
<?php
printf("<table>"
. "<tr>"
. "<td colspan=\"%d\">%s, %s and %s</td>"
. "</tr>"
. "</table>"
, $numCols
, $a
, $b
, $c
);
?>
Run Code Online (Sandbox Code Playgroud)
我不知道这个的性能,但在PHP中你也可以使用我认为被称为"Heredoc"的东西,我认为这有助于在这种输出中的可读性.
尼克的例子:
<table>
<tr>
<td colspan="<?php echo $numCols; ?>">
<?php echo $a; ?>, <?php echo $b; ?>, and <?php echo $c?>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
变为:
<?php
echo <<<EOT
<table>
<tr>
<td colspan="$numCols">
$a , $b, and $c
</td>
</tr>
</table>
EOT;
?>
Run Code Online (Sandbox Code Playgroud)
我相信最终的可读性是一个主观的东西,所以你的里程可能会有所不同!
怜悯
它属于微观优化的范畴.您的大部分时间都是初始化PHP引擎开始工作.
因此,除非您订购了数万行(甚至更多),否则您不应该关注它.
要添加,我做了一个百万行的小测试,我使用PHP打印它们,我用PHP调用交互程序做同样的事情,差异是微不足道的.
多一点信息.
第二个例子中发生的事情是你正在"打开/关闭"PHP,它不是正在发生的事情,但是对于这个例子它适合.
你应该更担心的是,代码周围会有很多逻辑吗?我是要将该字符串拆分成更多的字符串,甚至将它放在不同的地方?这是MVC应用程序的视图吗?
对于1和2,它们可能是两种方法之间的折腾.但是对于3,我会因为这些原因而采用方法2.
MVC Web应用程序中的视图主要是html/css.所以我想看到格式正确,我想在我的编辑器中看到html着色.所以这是一个加号.