2013-11-15 63 views
0

我一直在想:是不是有一個大的開放和關閉PHP(即模板)受傷?很多PHP標籤的開啓/關閉

澄清:

<html> 
    <?php echo $test; ?> 
    <body <?php echo $test2; ?>> 
    <table> 
     <?php foreach ($rows as $row): ?> 
     <tr> 
      <td><?php echo $row['cell1']; ?></td> 
      <td><?php echo $row['cell1']; ?></td> 
      <td><?php echo $row['cell1']; ?></td> 
      <td><?php echo $row['cell1']; ?></td> 
      <?php echo $row['added cells']; ?> 
     </tr> 
     <?php endforeach; ?> 
    </table> 
    <?php echo $someMorePhp; ?> 
    <div> 
     <?php /*do some more php stuff */ ?> 
    </div> 
    etc etc 
    etc 

或者這將是可取的,即

<html> 
<php echo $test.'<body'.$test2; ?>> 
<table> 
    <?php foreach ($rows as $row) { 
    echo '<tr> 
     <td>'.$row['cell1'].'</td> 
     <td>'.$row['cell2'].'</td> 
     <td>'.$row['cell3'].'</td> 
     <td>'.$row['cell4'].'</td> 
     <td>'.$row['cell1'].'</td> 
     '.$row['added cells'].' 
    <tr>'; 
    } 
</table> 
// etc 

我知道這可能看起來像一個微型優化等。要清楚我正在尋找一個經驗法則不是一個具體的用例...它會傷害進入和退出PHP引擎在單個腳本運行期間...

+1

可能重複的[PHP回聲vs打開和關閉標記](http://stackoverflow.com/questions/1394478/ph​​p-echo-vs-openclose-tag) – Boann

+0

很多''與HTML東西混合是一種痛苦保持。你的第二種情況似乎更好。但是,我更喜歡避免混合HTML和PHP與模板系統,如[RainTPL](http://www.raintpl.com/) – Arthur

+2

糟糕,對不起,在這裏更好的愚弄:http://stackoverflow.com/questions/2437144/opening -closing-tags-performance – Boann

回答

0

不,這是沒有問題的,你在這種情況下應該始終選擇更好的可讀性。

想想也無論是激活shorttags如果可能的話(但要注意,那些可能有一些副作用/問題與XML sytnax作爲註釋說明)

<? if ($bool) { ?> 
    <?= $myVarThatIWantToOutput ?> 
<? } ?> 

或者考慮使用一個模板引擎像智者或樹枝,這會限制你以某種方式強制拆分問題,讓一些東西更容易(並且更易讀),並允許編譯模板的緩存以確保你仍然可以獲得正確的速度。

+0

使用XML和其他標記語言時,短打開標記可能會導致錯誤。我不認爲這是好建議:( 模板引擎是好的建議你和樹枝是不可思議的! –

+1

這實際上是我的意思是「如果可能」。在普通的HTML環境下,短標籤不應該是個問題,但是我會編輯我的答案! – eXaminator