Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP的foreach如何使用MongoDB游标?_Php_Mongodb_Foreach - Fatal编程技术网

PHP的foreach如何使用MongoDB游标?

PHP的foreach如何使用MongoDB游标?,php,mongodb,foreach,Php,Mongodb,Foreach,我们使用MongoDB驱动程序中的某些函数来迭代游标,我们可以使用“hasNext()”和“getNext()”。但我们也可以使用简单PHP的foreach来迭代游标,而不必调用上述方法 我的问题是,如果foreach是一个简单的PHP函数,它如何与MongoDB一起工作?它如何从游标中获取记录?它是在内部使用MongoDB的“cursor.forEach()”,还是在内部运行“hasNext()”和“getNext()” 任何帮助都将不胜感激。该类实现了迭代器接口。因此,foreach调用光标

我们使用MongoDB驱动程序中的某些函数来迭代游标,我们可以使用“hasNext()”和“getNext()”。但我们也可以使用简单PHP的foreach来迭代游标,而不必调用上述方法

我的问题是,如果foreach是一个简单的PHP函数,它如何与MongoDB一起工作?它如何从游标中获取记录?它是在内部使用MongoDB的“cursor.forEach()”,还是在内部运行“hasNext()”和“getNext()”

任何帮助都将不胜感激。

该类实现了
迭代器
接口。因此,
foreach
调用光标与调用
$cursor->next()
相同,然后检查
$cursor->valid()
,然后从
$cursor->current()
获取值(重复操作,直到
valid
false
)。对于
$key=>$value
格式,它还获取
$cursor->key()
的值

它执行一些内部运行,但不运行“hasNext()”和“getNext()”等。它运行在
Iterator
接口中抽象描述的标准方法

抱歉我的挑剔,但是
foreach
不是“简单的PHP函数”;这是一种语言结构。关于堆栈溢出,我刚刚找到了一个很好的解释