有没有更好的方法在PHP中执行此操作

Bra*_*her 4 php

我正在使用此代码根据数据库中的值生成行,我确信有一种更有效的方法可以做到这一点,但我不确定如何!

if ($empty == 1) {
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
}
if ($empty == 2) {
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
}
if ($empty == 3) {
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
}
if ($empty == 4) {
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
}
Run Code Online (Sandbox Code Playgroud)

Jay*_*oda 14

你可以使用for循环来做到这一点:

$empty = 5;
$str = '';
for(i=0;$i<$empty;$i++) {
    $str .= "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>";
}
echo $str;
Run Code Online (Sandbox Code Playgroud)


Jus*_*nas 14

你可以用str_repeat它:

if ($empty > 0) {
    echo str_repeat("<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>", $empty);
}
Run Code Online (Sandbox Code Playgroud)

  • @MonkeyZeus为什么在不需要时执行函数?首先检查更快 (3认同)
  • 说实话,不需要`if(){}`.如果提供零,则str_repeat()`不输出任何内容. (2认同)