-1

当我放入mysqli_fetch_assoc($query)变量$row,然后$row放入while循环while($row)。循环无限迭代。

但是当我将整个初始化while($row = mysqli_fetch_assoc($query))置于while循环条件下时,它会正确显示所有值。

为什么会这样?

//wrong code
while($row)
{
    print_r( $row );
}
//right code
while($row = mysqli_fetch_assoc($query_select))
{
    print_r( $row  );
}
4

1 回答 1

0

因为该while语句检查大括号中的表达式的计算结果是否为 FALSE。因为$row既不是 NULL、FALSE、0 或空字符串 - 它的计算结果为 TRUE,所以while循环永远。

当您放置整个表达式$row = mysqli_fetch_assoc($query_select)时,它首先调用mysqli_fetch_assoc(),然后将结果分配给$row并最后检查结果是否为 TRUE/FALSE。并且由于mysqli_fetch_assoc()在没有更多记录要获取时返回 NULL -while循环停止。

于 2019-08-14T06:09:47.283 回答