一个虽然循环条件在PHP

问题描述:

我在很多例子中看到了以下while循环条件,甚至我已经在很多时候使用它。我知道它是如何工作的以及如何使用它。但是,因为我在这里编码的条​​件没有任何意义。一个虽然循环条件在PHP

当我看到代码时,条件就像它总是如此。就像while(1)。因为* mysql_fetch_assoc()*,传递的数据一直传递。所以情况是一个常数。

while($arr = mysql_fetch_assoc($data)) 
{ 
     //other code 
} 

现在,我在哪里错了?

+0

'$ data'包含您通常无法看到的内部数据,例如“最后一行被取回为#5”。该数据由'mysql_fetch_assoc'用来返回下一行或NULL。所以不,条件不是恒定的。 – DCoder

mysql_fetch_assoc的每次调用从结果集中获取下一个行。如果没有行,则返回false,并且循环终止。

$data是一个resource数据类型,并且可能会保持关于哪一行最后被提取的状态。
这并不罕见,即使数组有一个指向当前元素的内部指针,它可以使用某些数组函数进行操作。

+0

谢谢,这就是我所困惑的。这仅仅是一个函数技巧。 –

PHP website,mysql_fetch_assoc“如果没有更多的行返回一个字符串的关联数组对应于提取行,或FALSE。

因此,只要还有可用的行,mysql_fetch_assoc会返回行内容的关联数组,将指针递增到下一行,并执行循环。

当没有更多的行mysql_fetch_assoc将返回FALSE和循环将中断。

另请注意,自PHP 5.5.5起,此功能将被弃用。

+0

*“,并将数组指针增加到下一行”* ...'$ data'不是一个数组。或者你有更多关于如何实现MySQL资源链接的信息? –

+0

我的不好 - 已删除'数组' – PassKit