回声慢于不使用回声吗?

时间:2011-11-19 11:22:07

标签: php

  

可能重复:
  php echo vs open&close tag

例如。是这样的:

<p>Hello welcome to my site</p>
<p>Your name is <? echo $name; ?>!</p>
<p>Your age is <? echo $age; ?>!</p>
<p>Your email address is <? echo $email; ?>!</p>

比这更快或更慢:

<?
echo "<p>Hello welcome to my site</p>";
echo "<p>Your name is " . $name . "!</p>";
echo "<p>Your age is " . $age . "!</p>";
echo "<p>Your email address is " . $email . "!</p>";
?>

如果该网站获得了数百万的页面浏览量??

3 个答案:

答案 0 :(得分:5)

注意过早优化和微优化。虽然一个可能比另一个更快,但两者都是如此之快以至于差异可能在大多数实际情况下无关紧要。

机会是您的代码中最大的瓶颈是数据库访问。在大多数项目中,情况通常如此。优化您的查询以快速运行并仅返回相关数据,并优化您的代码以仅在必要时进行查询,并且缓存结果以便不重复查询将产生比交换来自PHP的转义的回声更多的性能。

从个人角度来说,我倾向于从纯粹出于审美原因的角度逃避PHP并尽可能使用HTML,即IDE识别HTML标记并可以为我突出显示它。对于不熟悉PHP的团队中的设计人员来说,它也使生活更加轻松。

答案 1 :(得分:3)

第一个代码片段产生了这个Zend代码:

ECHO '%3Cp%3EHello+welcome+to+my+site%3C%2Fp%3E%0A%3Cp%3EYour+name+is+'
ECHO !0
ECHO '%21%3C%2Fp%3E%0A%3Cp%3EYour+age+is+'
ECHO !1
ECHO '%21%3C%2Fp%3E%0A%3Cp%3EYour+email+address+is+'
ECHO !2                                                                                       ECHO '%21%3C%2Fp%3E%0A'

第二个:

ECHO '%3Cp%3EHello+welcome+to+my+site%3C%2Fp%3E'
CONCAT ~0 '%3Cp%3EYour+name+is+', !0
CONCAT ~1 ~0, '%21%3C%2Fp%3E'
ECHO ~1
CONCAT ~2 '%3Cp%3EYour+age+is+', !1
CONCAT ~3 ~2, '%21%3C%2Fp%3E'
ECHO ~3
CONCAT ~4 '%3Cp%3EYour+email+address+is+', !2
CONCAT ~5 ~4, '%21%3C%2Fp%3E'
ECHO ~5

由此我得出结论,第一个变体实际上更快,因为由于CONCAT而没有额外的字符串复制。

答案 2 :(得分:0)

即使拥有数百万的页面浏览量,使用echo的可能性也不会成为任何网站上的性能瓶颈。如果站点有更复杂的组件,例如数据库查询,那么首先优化它们将会更有益。