2012-02-07 46 views
2

以下兩段代碼有什麼區別?版本B似乎很難閱讀,過度使用打開和關閉標籤,但我找到了很多使用這種格式的教程和示例。是否有一種首選方法,意味着相互之間的程序原因,還是這種個人偏好?在PHP中封裝和不封裝HTML有什麼區別?

版A(封閉在PHP)

<?php 
    $test = array('a','b','c'); 

    if (isset($test)) 
     { 
     echo '<div id="testmessage"> 
       <h2> 
        Test Message Below 
       </h2> 
       <ul>'; 

     foreach ($test as $t) 
      { 
      echo '<li>'.$t.'</li>'; 
      } 

     echo '</ul>'; 
     echo '</div>'; 

     } 
?> 

版B(多個開放和結束標記)

<?php $test = array('a','b','c'); 
     if (isset($test)){ 
?> 

    <div id="testmessage"> 
     <h2> 
      Test Message Below 
     </h2> 
     <ul> 

    <?php 
     foreach ($test as $t) 
     { 
    ?> 

    <li><?php echo $t; ?></li> 

    <?php 
     } 
    ?> 

     </ul> 
    </div> 

<?php 
} 
?> 

回答

0

沒有真正的區別,但它只是不鼓勵。

我給你C版可能讀優於B一點:

<?php 
    $test = array('a','b','c'); 
    if (isset($test)): ?> 

    <div id="testmessage"> 
     <h2> 
      Test Message Below 
     </h2> 
     <ul> 

    <?php foreach ($test as $t): ?> 

    <li><?php echo $t; ?></li> 

    <?php endforeach; ?> 

     </ul> 
    </div> 

<?php endif; ?> 
+0

由於個人喜好,我討厭這種風格,因爲它讓我想起VB太多了,而VB讓我感到畏縮。 :) – qJake 2012-02-07 21:00:06

+0

@SpikeX啊,但它是更容易跟蹤,然後隨機'}'和''{ – Neal 2012-02-07 21:00:40

+0

如果你不縮進正確。 ;)你的HTML *應該和括號一樣,就好像它們在裏面一樣。 – qJake 2012-02-07 21:01:28

-1

沒什麼,不同之處在於PHP使用在存儲這些HTML字符串的存儲器。通過在PHP腳本中不包含HTML,您最終可以減小PHP解析器的大小(並且緊張),因爲它讀取的PHP腳本最終會更小。

版本B是更好的,但幅度不大。在大多數情況下,你不會注意到其中的差異。

-1

有沒有實際的區別 - 只是一個風格問題。

你可能會偏向於第二種方法,因爲你不需要逃避引號等的HTML。

+0

(downvoters,請詳細解釋) – 2012-02-07 21:10:52

+0

當務實地思考時,版本A是不明智的,因爲它很難維護。 – afuzzyllama 2012-02-07 21:18:18

0
  • 一個看起來像結合PHP和HTML的標準下鍋遠風格
  • B相像一個本地的PHP模板引擎模板(如Zend的視圖)

它實際上只是一種風格事情,但是我更喜歡B與模板引擎結合使用。

0

雖然你可能會認爲B是難以閱讀,它實際上是更容易維護。你有什麼可以鬆散地描述爲一個模板。

當你開始嵌入HTML像PHP版本A,如果需要更改頁面的外觀以後會發生什麼?或者當你想改變頁面佈局時會發生什麼?

通過將CSS,javascipt/jquery等技術與您的html結合,管理您的網站標題,頁腳和主要內容塊變得更有條理。

我想你會發現使用模板將使你的生活更容易從長遠來看。在你離開之前,認爲你需要自己包裝一個,有many template engines to choose from