2011-12-25 75 views
0

在性能(以及爲什麼)方面什麼更有效?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> 
+7

我懷疑有任何明顯的區別,它們都需要O(n)的操作,但第二個看起來像一個火車肆虐。 – rook 2011-12-25 02:59:52

+0

我對模板系統使用第一種方法。第二隻對我來說很討厭。 – Matt 2011-12-25 03:02:11

+4

在這種情況下,性能不是問題:可讀性更像是一個問題,在這種情況下,兩種方法都不可讀。 – fwielstra 2011-12-25 03:04:58

回答

1

第二個選項看起來更清潔,它應該是更有效,因爲它比其他工作少:爲什麼要用<?php echo "<div>"; ?>「當"<div>"足夠?

但是,誠實,在性能上的差異是微不足道的,幾乎毫無關係。

5

會有同樣的方式將有世界各地運行,並在世界加一週圍的儀表運行沒有什麼區別沒有區別。

2

有可能是在性能上沒有差異,但這樣一來你的代碼可能會有點更具可讀性,特別是如果你要使用任何其他循環或條件。

<div> 
<?php for($i = 0; $i < 10; $i++): ?> 
    <p> <?php echo $i; ?> </p> 
<?php endfor; ?> 
</div> 
1

如果這是Javascript,由於DOM操作行爲,第二個示例的運行速度將快50倍,但是由於這是服務器端,所以在第一個示例中保存額外計算的開銷不會有任何區別。如果我不得不選擇,我會選擇第二個出於這個原因。

1

由於給出的答案是,並且有可讀性的意見,這是我的可讀性,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;