2011-11-07 41 views
0

更多的是風格問題,但是如何在源代碼中混合使用HTML標籤和腳本邏輯選項卡?這可能不是說明問題的最佳方式,但我認爲一個簡單的例子會很好地證明它。注互聯:使用HTML和腳本邏輯的製表樣式

<table> 
    <tr><td>This is the first row</td></tr> 
    <? if ($test == true) { ?> 
     <tr><td>Only display the second row if some test is true</td></tr> 
    <? } ?> 
</table> 

VS

<table> 
    <tr><td>This is the first row</td></tr> 
    <? if ($test == true) { ?> 
    <tr><td>Only display the second row if some test is true</td></tr> 
    <? } ?> 
</table> 

我知道在PHP中你可以用狡猾的,如果語法和做「如果(東西):」,然後做一個「ENDIF;」後來。但它等於同樣的事情。

應該基於HTML或基於邏輯條件的代碼選項卡。我問這是因爲我正在從事一個沒有MVC的項目(而不是PHP,但是類似的腳本語言),所以有大量的邏輯與HTML混合在一起,並且在選項卡方面會變得非常混亂。如果您基於兩個代碼結束離左邊距太遠而選擇標籤。這裏有任何標準嗎?

+0

當您選擇此意大利麪條式編碼時,代碼將在短時間內不可維護。無論如何,使用模板,它會節省您的時間。 – deejayy

+0

我完全同意。不幸的是,代碼是在傳統的ASP中,所以我沒有提供很多細節。然而,所有新項目的MVC框架。 – MikeMurko

回答

0

有沒有一套標準的,但我要說的是正確標籤的PHP代碼的文件是比正常的HTML標籤更重要。與HTML源代碼相比,您將花費更多的閱讀PHP的開發時間。

另一種解決方案是使用帶有ob_start()的緩衝輸出,並在將HTML代碼寫入頁面之前將其「HTML」代碼「清理乾淨」,這樣您就可以同時獲得這兩個代碼。但是這可能會讓你的代碼更加混亂,所以這可能是不值得的。

+0

雖然所有的答案都說幾乎相同的東西。第一種情況更好,這也是我的感受。 – MikeMurko

+0

另一種解決方案是模板。您可以使用特定標識符(例如'%_PAGETITLE_%')製作一堆HTML標記,並將這些標記進行適當替換,然後回顯模板。這樣,你的邏輯和標記在你的代碼中是分開的,你可以在可讀的風格方面得到兩全其美的好處。 – Polynomial

+0

你將如何處理模板中的邏輯?或者你將腳本方面的邏輯放回原處,然後根據邏輯加載某些模板。如果只是你想要的不同的單一行,那麼做一個全新的模板? – MikeMurko

0

你發現什麼更容易閱讀?你期望別人也會更容易閱讀嗎?

這些是在閱讀您的問題時想到的兩個主要問題。

對我而言,第一個案例更爲清晰。

0

如果您在6個月的時間內回來,如果有必要,更容易閱讀和更新?

個人而言,我會去的選項1