有条件地回显打开和关闭HTML标签

时间:2014-02-28 23:13:54

标签: php html

很多时候在PHP中,有必要有条件地回显打开和关闭标签。例如,在获取元素列表时,如果要显示的元素(<ul> ... </ul> s)超过0,则只需要包含<li>。最明显的解决方案是这样的:

<?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>标签?

3 个答案:

答案 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 :(得分:1)

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

答案 2 :(得分:0)

您不需要两个if语句。你可以在一个声明中完成所有这些。

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