【问题标题】:A While Loop Condition In PHPPHP 中的 While 循环条件
【发布时间】:2012-12-19 16:34:21
【问题描述】:

我在很多例子中都看到过下面的while循环条件,甚至我也用过很多次。我知道它是如何工作的以及如何使用它。但是当我在这里编码条件时没有任何意义。

当我看到代码时,条件就像它总是正确的。就像 while(1)。因为对*mysql_fetch_assoc()*来说,传递的数据都是一样的。所以条件是一个常数。

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

现在,我错在哪里????

【问题讨论】:

  • $data 包含您通常看不到的内部数据,例如“提取的最后一行是 #5”。 mysql_fetch_assoc 使用此数据返回下一行或 NULL。所以不,条件不是恒定的。

标签: php operators conditional


【解决方案1】:

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

$dataresource 数据类型,可能会保留最后获取哪一行的状态。
这并不罕见,甚至数组也有一个指向当前元素的内部指针,可以使用某些数组函数对其进行操作。

【讨论】:

  • 谢谢,这就是我所困惑的。这只是一个简单的功能技巧。
【解决方案2】:

来自PHP website,mysql_fetch_assoc "返回对应于已获取行的字符串关联数组,如果没有更多行,则返回 FALSE。"

因此,只要仍有可用的行,mysql_fetch_assoc 将返回行内容的关联数组,将增加指向下一行的指针并执行while 循环。

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

另请注意,从 PHP 5.5.5 开始,该函数将被弃用。

【讨论】:

  • "并将数组指针递增到下一行" ... $data 虽然不是数组。或者你有更多关于 MySQL 资源链接是如何实现的信息吗?
  • 我的错 - 已删除“数组”
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 2017-06-18
  • 2015-02-27
  • 2012-09-09
  • 2016-11-27
  • 1970-01-01
相关资源
最近更新 更多