为什么第二个例子不像第一个例子那样工作呢?看看循环的情况。它不是完全相同的条件,只是不同的方式写它?
当没有更多的东西可得到时,第一个例子就变成了假的。然后它就停止了。但是第二个例子永远不会变成错误,它总是用结果填充屏幕,永远不会完成。无止境的循环。
为什么这些例子表现得不同而不完全相同呢?
//First ex
while ($rows = mysqli_fetch_assoc($query)) {
print_r($rows);
}
//second ex
$rows = mysqli_fetch_assoc($query);
while ($rows) {
print_r($rows);
}发布于 2018-02-12 06:26:27
//First ex
while ($rows = mysqli_fetch_assoc($query)) {
print_r($rows);
}这是在每次迭代时执行的,因此在每次迭代时将下一个值放入$row中。
//second ex
$rows = mysqli_fetch_assoc($query);
while ($rows) {
print_r($rows);
}在上面的代码中,您只将第一个迭代值放入$row。$row不会在每次迭代中得到更新。所以这将永远持续下去。
结论:
每次调用
mysqli_fetch_assoc($query)时,它都会给出下一行。
在第一个示例中,$row通过在每次迭代中一次又一次地调用mysqli_fetch_assoc($query),在每次迭代中都有下一行。
而在第二个示例中,mysqli_fetch_assoc($query)只被调用一次。因此,您的$row在每次运行时都有价值,而它将运行无限时间。
https://stackoverflow.com/questions/48740409
复制相似问题