>>10
ありがとうございます
fetchAllしてみると、確かにforeachと同じ結果が出力されました
でもたとえばforeachの下に続けて書くと出力されない、これはカーソルがリセットされてないからということなんですね

となると、PDOStatementオブジェクトは中にデータが格納されているのではなく、検索条件とカーソルを記憶
データはこれと関連付けられた仮想テーブルに存在し、fetchによってカーソルのある場所ににアクセスできる
みたいな感じの解釈でよろしいでしょうか……?