Защото така е проектиран API с мисъл за гъвкавостта.
Вашият обект не съдържа всички набори от данни. Вместо това PDOStatement
внедрява Iterator
/Traversable
интерфейс, имплицитно извикващ ->fetch за всеки foreach операция.
Някои хора обаче предпочитат да използват ->fetch ръчно или ->fetchAll за изтегляне на всички редове наведнъж.