2014-02-28 48 views
0

很多時候在PHP中,有必要有條件地回顯打開和關閉標記。例如,獲取元素列表時,如果要顯示多於0個元素(<li> s),則只需包含<ul> ... </ul>。最明顯的解決方案是這樣的:有條件地回顯打開和關閉HTML標記

<?php 
    $count = getCount(); 
    if($count > 0) { 
     echo "<ul>"; 
    } 
    for($i = 0; $i < $count; $i++) { 
     // echo our items 
     echo "<li>" . getItem() ."</li>"; 
    } 
    if($count > 0) { 
     echo "</ul>"; 
    } 
?> 

但是我們有兩次相同的if(...)。有沒有更好的方式來有條件地迴應<ul>標籤?

+0

這當然可以具有列表以外的其他應用,例如,僅當有內容需要回顯時纔回顯「

...
」。 – geoff

+0

爲什麼你認爲你需要兩個如果? –

回答

2

在這裏你去...一個if

<?php 
    $count = getCount(); 
    if($count > 0) { 
     echo "<ul>"; 
     for($i = 0; $i < $count; $i++) { 
      // echo our items 
      echo "<li>" . getItem() ."</li>"; 
     } 
     echo "</ul>"; 
    } 
?> 

這也跳過不必要的for循環,你目前在你的代碼:)

當然我開玩笑了一下。一旦你終於擺脫了想寫意大利麪代碼的地步,那麼你可以看看各種模板引擎。

1

輸出HTML的更好方法是使用模板引擎,不要直接通過PHP代碼輸出任何HTML。

0

您不需要兩個if語句。你可以在一個聲明中完成所有事情。

if($count > 0) { 
    echo "<ul>"; 
    for($i = 0; $i < $count; $i++) { 
    // echo our items 
    echo "<li>" . getItem() ."</li>"; 
    } 
    echo "</ul>"; 
}