很多时候在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>
标签?
答案 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>";
}