pdo — PDOStatement в цикле foreach Переполнение стека

Есть следующий код:

<?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 давать ошибки?

1

Решение

PDOStatement инвентарь Traversable интерфейс, что означает, что он может быть использован внутри foreach петля.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]