我用这个MongoDB库进行PHP
如果我使用此代码:
$db->users->find();
我得到一个关联数组。
是否可以作为find()方法的结果获取对象?
例如,在PDO中,我可以这样做:
$stmt->fetch(PDO::FETCH_OBJ);
谢谢。
如果你要找的只是一个 stdclass 对象(如 PDO::FETCH_OBJ
),你可以强制转换当前元素:
$obj = (object) $db->users->find()->getNext();
在 PHP 手册中了解有关强制转换的更多信息:
- 类型杂耍(PHP 手册)
调用
$db->users->find();
返回一个 \MongoCursor 对象,它是一个迭代器,您可以在 foreach 循环中循环,就像使用数组一样。但是,您从中获得的每个结果都是一个关联数组。
http://php.net/mongocollection.find
因此,要获取对象,您可以在使用之前将每个项目强制转换为对象:
$list = $db->users->find();
foreach($list as $user) {
$user = (object)$user; // object cast here
echo $user->name; // use it as an object
}