5
回答

$stmt = $pdo->query('select * from user'); //$pdo是获得的一个pdo数据库连接对象
echo getType($stmt) //Object
$stmt是一个对象,具体说是PDOStatement对象。
print_r($stmt); //PDOStatement Object ([queryString] => select * from user)
但是$stmt却可以用foreach输出
foreach($stmt as $rs)
{
print_r($rs);
}
结果为:
Array ( [id] => 1 [0] => 1 [name] => yxb [1] => yxb ) Array ( [id] => 2 [0] => 2 [name] => beiwei [1] => beiwei )
这样就有一个矛盾:
foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。--php手册
请问这该怎么理解?