什么改变了循环中的条件:while (mysql_fetch_array($var))?

Posted

技术标签:

【中文标题】什么改变了循环中的条件:while (mysql_fetch_array($var))?【英文标题】:What changes the condition in loop: while (mysql_fetch_array($var))? 【发布时间】:2012-07-29 03:10:51 【问题描述】:

我是一名初学者 C 程序员。我最近开始学习 phpmysql,并在 while 循环中遇到了这种有趣的行为:

while ($pages = mysql_fetch_array($pages_set))
    statement

我之前了解到,必须在循环中的某处(或表达式本身)更改条件才能使循环成为有限的,但在这种情况下,我只是看不到它。

我研究了一下mysql_fetch_array()函数,发现this:

返回对应于获取行的数组并将内部数据指针向前移动

是不是说指针在行中移动,当它到达末尾时,它会返回 0 或 NULL?

【问题讨论】:

由于您只是在学习 PHP,因此值得指出的是 mysql_xxx() 函数已被弃用。您应该改用mysqli_xxx() 替代方案或 PDO 库。有关更多信息,请参阅 PHP 手册。但是,对于这些库中的任何一个,类似的构造都是可能的,因此您的问题仍然相关。 【参考方案1】:

指针在每次迭代时移动到记录集中的下一行,这样当没有数据时,$pages 将为 NULL,循环将结束。

【讨论】:

以上是关于什么改变了循环中的条件:while (mysql_fetch_array($var))?的主要内容,如果未能解决你的问题,请参考以下文章

while循环的条件?

00013_循环语句do...while

Java_04循环结构

00011_循环语句while

python第七课——循环结构 while

第2篇 Java中的循环