gpt4 book ai didi

PHP SQL数组循环

转载 作者:可可西里 更新时间:2023-11-01 07:35:31 26 4
gpt4 key购买 nike

我最近使用了相当多的 PHP,虽然我通常发现它很有趣而且相当轻松,但我担心我可能偶然发现了很多人似乎讨厌它的怪癖之一.

考虑一下:

while($row = mysql_fetch_array($result))
{
//Do something with $row...
}

...其中 $result 是一个 mysql_query,例如:

SELECT name, age FROM people

每次循环执行时,$row 引用返回结果中的不同行。

我从来不知道有一种语言,如果它检查的条件为真, while(... 语句会执行除执行之外的任何操作,而且我可以看到上面的代码是如何做的......但我不能查看 while 循环如何使其迭代获取的数组的索引。

这仅仅是 PHP 的一个奇怪的怪癖,还是 mysql_fetch_array 返回的对象每次被引用时都会递增/拼接自身?

我明白它是如何工作的,所以我可以在我的代码中使用它,但我不明白为什么而且我不喜欢死记硬背 - 如果有人能解释我会非常感谢。

最佳答案

the object returned by mysql_fetch_array increment/splice itself every time it's referenced

您说得对。出于某种原因,它在这个特定函数的手册引用中没有这样说,但让我们看一下非常相似的 mysql_fetch_row 的引用 http://www.php.net/manual/en/function.mysql-fetch-row.php

引用自引用资料:

Returns a numerical array that corresponds to the fetched row and moves the internal data pointer ahead.

内部数据指针向前移动后,再次调用此函数将获取下一行。此行为与 while 本身无关。您也可以在连续的行中多次调用该函数。

这种行为实际上很常见。考虑使用类似于 fread 的 API 从文件中读取。每次阅读时,您都会收到下一个数据 block 。这也是使用内部数据指针(也称为游标)实现的。

关于PHP SQL数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14698673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com