在foreach循环上的PHP空白行

Ser*_*lik 2 php foreach

我有一个方法,它从查询表中查询前5项,并将每行添加到列表中.当我尝试从这个方法创建一个有序列表时,它列出了10个项目而不是5.每次迭代时有一条正确的行和一行空行.我已经尝试过类中的方法和类外的函数,但结果是一样的.

这是我的方法:

/**
* @return array
*/
public function top_list(): array {
    /* @var mysqli_result $result */
    $sql = "SELECT name FROM users ORDER BY performance DESC LIMIT 5";
    $result = self::$database->query($sql);
    if (!$result) {
        exit("Database query failed.");
    }
    $list = [];
    while ($record = $result->fetch_assoc()) {
        $list[] = $record;
    }
    $result->free();
    return $list;
}
Run Code Online (Sandbox Code Playgroud)

这是我的有序清单:

$user = new User();
foreach ($user->top_list() as $item) {
    echo "<li>";
    echo $item["name"];
    echo "<li />";
}
Run Code Online (Sandbox Code Playgroud)

有序列表的结果

print_r of $ user-> top_list()

Nic*_*eri 6

echo "<li />";

应该

echo "</li>";

您没有正确关闭列表标记,HTML呈现器正在尝试为<li />它看到的每个标记项创建一个新的列表项.