2013-02-01 28 views
0

我正在構建一個混合了php和html的網站,我的靜態內容在html中,動態/數據庫驅動的內容顯然是使用php回顯的。然而,我發現自己有時加用PHP,這並不需要在PHP的HTML標籤,我只是想知道是否有寫作之間的有效的差異......比如......使用php或html編寫dom元素更有效嗎?

<?php 
$result = mysql_query("SOME QUERY") or die(mysql_error()); 
$num_rows = mysql_num_rows($result); 
echo "<ul id=\"someid\">"; 
while ($row = mysql_fetch_array($result)) { 
echo "<li>RAR RAR</li>"; 
} 
echo "</ul>"; 
echo "<div class=\"clearfix\"></div>"; 
?> 

<ul id="someid"> 
<?php 
$result = mysql_query("SOME QUERY") or die(mysql_error()); 
$num_rows = mysql_num_rows($result); 
while ($row = mysql_fetch_array($result)) { 
echo "<li>RAR RAR</li>"; 
} 
?> 
</ul> 
<div class="clearfix"></div> 

速度有什麼區別嗎?一點都不?我只是感興趣。乾杯

+2

不要懷疑它。如果你想浪費一些時間,你可以測試它(唯一的辦法就是確保你的情況在大多數情況下更快),但最終:這是一個微型優化,將在網絡延遲之間完全丟失,I/O和其他耗時的事情,並不值得優化。 – Nanne

+0

不要擔心哪一個更快(如果你的意思是「更快」,說「更快」)。擔心作爲一個人閱讀哪一個更容易,以及誰還要維護代碼。 –

回答

1

首先 - 你應該停止使用MySQL。從PHP 5.5開始不再使用,不再維護。你有兩種選擇:MySQLi和PDO。此外,您應該刪除or die(),因爲您不希望您的客戶(甚至更糟糕 - 潛在的黑客)看到錯誤消息:)

不回覆html內容,只是因爲如果你這樣做,PHP會有解析更多內容。雖然差異很小,但可能並不顯着。

還有另外一個問題,討論這個:Escape HTML to PHP or Use Echo? Which is better?

+2

我還會補充說,純HTML可以更容易維護,因爲閱讀代碼更容易。 (當你避免混合東西時,保持組織的東西更容易 – rafaelbiten

+1

是的,你是對的,這些在我剛剛鏈接的主題中已經有很多內容了,所以我不認爲需要進入很多細節 –

2

一般最佳的做法是不喜歡你在您的兩個例子做了與PHP混合HTML。您想要使用<?php打開文檔,並且永不關閉它。改用HTML代碼,可能使用heredoc語法。

從表現上看,沒有任何區別。這就像想知道is_null更快,然後=== null - 是的,===稍微快一點,但沒有人關心,因爲單個foreach循環可以有多倍的性能影響,然後這個。

所以不要擔心!用你找到的清潔劑來書寫它,因爲這有所不同。無論回聲是否快於原始輸出 - 無關緊要。