在性能(以及爲什麼)方面什麼更有效?php內部html
$s = "<div>";
for($i = 0; $i < 10; $i++)
$s.= "<p>".$i."</p>";
$s.= "</div>";
echo $s;
或
<div>
<?php for($i = 0; $i < 10; $i++) { ?>
<p> <?php echo $i; ?> </p>
<?php } ?>
</div>
在性能(以及爲什麼)方面什麼更有效?php內部html
$s = "<div>";
for($i = 0; $i < 10; $i++)
$s.= "<p>".$i."</p>";
$s.= "</div>";
echo $s;
或
<div>
<?php for($i = 0; $i < 10; $i++) { ?>
<p> <?php echo $i; ?> </p>
<?php } ?>
</div>
第二個選項看起來更清潔,它應該是更有效,因爲它比其他工作少:爲什麼要用<?php echo "<div>"; ?>
「當"<div>"
足夠?
但是,誠實,在性能上的差異是微不足道的,幾乎毫無關係。
會有同樣的方式將有世界各地運行,並在世界加一週圍的儀表運行沒有什麼區別沒有區別。
有可能是在性能上沒有差異,但這樣一來你的代碼可能會有點更具可讀性,特別是如果你要使用任何其他循環或條件。
<div>
<?php for($i = 0; $i < 10; $i++): ?>
<p> <?php echo $i; ?> </p>
<?php endfor; ?>
</div>
如果這是Javascript,由於DOM操作行爲,第二個示例的運行速度將快50倍,但是由於這是服務器端,所以在第一個示例中保存額外計算的開銷不會有任何區別。如果我不得不選擇,我會選擇第二個出於這個原因。
由於給出的答案是,並且有可讀性的意見,這是我的可讀性,icya答案:
<?php
$s = "";
for ($i = 0; $i < 10; $i++)
$s .= "<p>" . $i . "</p>";
$html = <<<HTML
<html>
<body>
<div>$s</div>
</body>
</html>
HTML;
echo $html;
我懷疑有任何明顯的區別,它們都需要O(n)的操作,但第二個看起來像一個火車肆虐。 – rook 2011-12-25 02:59:52
我對模板系統使用第一種方法。第二隻對我來說很討厭。 – Matt 2011-12-25 03:02:11
在這種情況下,性能不是問題:可讀性更像是一個問題,在這種情況下,兩種方法都不可讀。 – fwielstra 2011-12-25 03:04:58