Se ti stupisce che tu possa fare
è perchè PDOStatement implementa Traversable, che vuol dire che può rispondere al foreach (una tua classe implementerebbe pure Iterator o simili, ma le builtin non ne hanno bisogno (come da manuale))Codice PHP:
$stm = $pdo->query("...");
foreach($stm as $row)
{
echo $row['mycolumn'];
}