PHP 5.3 和 7.2 中的 foreach 循环

Pan*_*nic 1 php mysql foreach php-5.3 php-7

我想在 PHP 5.3 中使用这个 foreach 循环,它在 PHP 7.2 中工作正常

$query = sprintf("SELECT a,b FROM table");
$result = $mysqli->query($query);
$data = array();
foreach ($result as $row) {
 $data[] = $row;
}
Run Code Online (Sandbox Code Playgroud)

我阅读了官方文档并了解到 foreach 循环的工作方式不同,但我无法弄清楚。

Don*_*nic 5

您通过使用以下方式迭代结果对象来获取结果:

foreach ($result as $row) {
    $data[] = $row;
}
Run Code Online (Sandbox Code Playgroud)

直到 PHP 5.4 才添加对此的支持。(请参阅手册中的更改日志)您需要显式调用 fetch 方法。

while ($row = $result->fetch_assoc()) {
    $data[] = $row;
}
Run Code Online (Sandbox Code Playgroud)