2014-03-01 19 views
0

我試圖改進我的編程理論,並在前面的問題中指出,我不應該在我的編程中使用多行ehcos作爲演示第一個例子。我使用這個,因爲一旦它符合它會自動最小化輸出HTML。下面哪個例子是使用php的最佳實踐,爲什麼?是否有任何顯着差異在這3個不同的應用程序php

1)

echo '<div class="row cf">';  
echo '<div class="col_8 cf alpha">'.$page_title.'</div>'; 
echo '<div class="col_4 cf omega right">'; 
echo '<a href="'.$table_url.'-action.php?action=add" class="button blue">'; 
echo '<i class="icon-plus-sign"> </i> Add a Site</a>'; 
echo '</div>'; 
echo '</div><hr>'; 

2)

echo ' 
<div class="row cf"> 
<div class="col_8 cf alpha">'.$page_title.'</div> 
<div class="col_4 cf omega right"> 
<a href="'.$table_url.'-action.php?action=add" class="button blue"> 
<i class="icon-plus-sign"> </i> Add a Site</a> 
</div> 
</div> 
<hr> 
'; 

3)

<div class="row cf"> 
<div class="col_8 cf alpha"><?php echo $page_title; ?></div> 
<div class="col_4 cf omega right"> 
<a href="<?php echo $table_url; ?>-action.php?action=add" class="button blue"> 
<i class="icon-plus-sign"> </i> Add a Site</a> 
</div> 
</div> 
<hr> 

由於....皮特

+1

這幾乎是一個偏好問題,雖然我認爲PHP應該與第三種解決方案一起工作;只是因爲它是一種模板語言 - 它是HTML的意思,是爲了包裝PHP,而不是其他方式。其次,讀前兩篇真的很難。 – MackieeE

回答

0

有顯着性差異。第一個特別難以維護。第二個更好一點,但仍然不方便。

第三個允許您寫入純HTML而不需要轉義任何東西。您只需簡單地打開PHP標記以插入變量。如果你有Netbeans甚至Notepad ++之類的智能編輯器,這個HTML也是屬性語法高亮的。

所以我會選擇第三個,除了可能當我插入一個非常小的HTML片。

如果我可以建議小的改進:

<?php echo $x; ?> 

也可以寫成

<?= $x ?> 

在性能的情況下,我覺得不會有太大的差別。我猜想第三個更快,因爲它需要解析和執行更小的PHP。在其他的字符串中也需要解析以檢查特殊字符。

這就是說,我懷疑你是否能夠測量任何差異,而這不應該成爲你的擔憂。選擇你最喜歡的一個。爲了優化,您最好找到真正的瓶頸,這些瓶頸通常在執行太多,太複雜或數據庫查詢不完善的領域中找到。

+0

請注意,雖然[short_open_tags](http://www.php.net/manual/en/ini.core.php#ini.short-open-標籤)語法('')已被默認啓用(它始終有效)因爲'5.4'它可能沒有在你的主機上啓用。也就是說,它在大多數主機上啓用。 – h2ooooooo

+1

自PHP 5.4開始,短打開和回顯標記('<?=')總是*可用,因爲它不受該設置的影響。但是你是對的,在早期的版本中,你需要確保它可用。當你想編寫可重用的庫代碼時,考慮這一點尤其重要。儘管如此,我從來沒有見過一臺主機沒有可用。 – GolezTrol

+1

因此「*已被默認啓用(**它始終工作**)*」。我的解釋可能會令人困惑 - 對此感到遺憾。 :-)也就是說,我同意你的觀點 - 我曾經使用過的所有主機都已啓用它(並且使用低於PHP 5.4的任何東西都應考慮升級) – h2ooooooo

0

我喜歡的解決方案3的原因有兩個:

我的IDE(記事本++)實際上將語法高亮顯示HTML PHP的並不僅僅是顏色它叫做「串色」。每當我使用它時,我也不必在HTML中將'轉換爲\'

+0

感謝您的意見......這個問題更傾向於在服務器端進行編譯時的性能。 – petebolduc

+1

@petebolduc這將**不會**成爲你的瓶頸。我們正在談論微秒差異,它不會**顯而易見。也就是說PHP標籤之外的HTML應該總是更快(更好),因爲PHP編譯器不需要接收「回聲」調用(或字符串連接)。 – h2ooooooo

+0

謝謝......它的諷刺之處在於,根據第一個例子,我已經編程了很長時間,當我在編輯器中查看html語法突出顯示時,我發現它更難閱讀。 – petebolduc

相關問題