PDOStatement在foreach循环php中 [英] PDOStatement in foreach loop php

查看:61
本文介绍了PDOStatement在foreach循环php中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有以下代码:

<?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.

我在php.net上阅读到, PDO :: query()返回一个 PDOStatement 对象作为结果集.从技术上讲,这部分: $ db-> query("SELECT * FROM names")是一个 PDOStatement 对象.

I've read on php.net that PDO::query() returns a PDOStatement object as a result set. So teoretically, this part: $db->query("SELECT * FROM names") is a PDOStatement object.

foreach 如何遍历 PDOStatement 对象?是否会将 PDOStatement 对象转换为关联数组?为什么没有这部分: $ db-> query("SELECT * FROM names")as $ row 给出错误?

How does foreach loop through an PDOStatement object? Does it convert the PDOStatement object to an associative array? Why isn't this part: $db->query("SELECT * FROM names") as $row giving errors?

推荐答案

PDOStatement 实现 Traversable 接口,这意味着它可以在 foreach 循环内使用.

这篇关于PDOStatement在foreach循环php中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆