Parce que c'est ainsi que l'API est conçue, dans un souci de flexibilité.
Votre objet ne contient pas tous les jeux de données. Au lieu de cela PDOStatement
implémente le Iterator
/Traversable
interface, appelant implicitement ->fetch
pour chaque foreach
opération.
Certaines personnes préfèrent cependant utiliser ->fetch
manuellement, ou ->fetchAll
pour tirer toutes les rangées à la fois.