[英]PDOStatement in foreach loop php
There is a following code: 有以下代码:
<?php
include 'connection.php'; //$db is declared here. It's a PDO object.
foreach ($db->query("SELECT * FROM names") as $row) {
echo $row['firstname'] . $row['lastname'] . $row['postcode'] . '<br>';
}
?>
The code works as expected, but I don't understand the logic behind it. 该代码按预期工作,但我不理解其背后的逻辑。
I've read on php.net that PDO::query()
returns a PDOStatement
object as a result set. 我已经在php.net上阅读到
PDO::query()
返回一个PDOStatement
对象作为结果集。 So teoretically, this part: $db->query("SELECT * FROM names")
is a PDOStatement
object. 从技术上讲,这部分:
$db->query("SELECT * FROM names")
是一个PDOStatement
对象。
How does foreach
loop through an PDOStatement
object? foreach
如何在PDOStatement
对象中循环? Does it convert the PDOStatement
object to an associative array? 它将
PDOStatement
对象转换为关联数组吗? Why isn't this part: $db->query("SELECT * FROM names") as $row
giving errors? 为什么不是这部分:
$db->query("SELECT * FROM names") as $row
提供错误?
PDOStatement
实现了Traversable
接口,这意味着它可以在foreach
循环内使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.