Porque así es como está diseñada la API, con la flexibilidad en mente.
Su objeto no contiene todos los conjuntos de datos. En su lugar, PDOStatement
implementa el Iterator
/Traversable
interfaz, llamando implícitamente a ->fetch
para cada foreach
operación.
Sin embargo, algunas personas prefieren usar ->fetch
manualmente, o ->fetchAll
para tirar de todas las filas a la vez.