有以下代码:
<?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>';
}
?>
代码按预期工作,但我不明白它背后的逻辑。
我在 php.net 上读过,它PDO::query()
返回一个PDOStatement
对象作为结果集。所以理论上,这部分:$db->query("SELECT * FROM names")
是一个PDOStatement
对象。
如何foreach
循环遍历一个PDOStatement
对象?它是否将PDOStatement
对象转换为关联数组?为什么这部分不是:$db->query("SELECT * FROM names") as $row
给出错误?