当前函数如何在PHP中将对象转换为数组

时间:2017-08-03 15:02:57

标签: php mongodb

我从互联网上获得了此代码。

我不知道怎么回事
$databases = current($res->toArray());

正在使用代码。我是MongoDB和PHP的新手。 current函数如何能够检索所有值?究竟executeCommand检索到了什么?

$mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$listdatabases = new MongoDB\Driver\Command(["listDatabases" => 1]);
$res = $mng->executeCommand("admin", $listdatabases);


$databases = current($res->toArray());

foreach ($databases->databases as $el) {

    echo $el->name . "\n";
}

1 个答案:

答案 0 :(得分:1)

$res = $mng->executeCommand("admin", $listdatabases);执行listDatabases command并将结果分配给$res。结果是Cursor对象,其具有toArray方法。

一些$res->toArray()的结果,毫不奇怪,是一个数组。它的第一个元素是一个包含数据库列表的对象。

现在,current不是MongoDB特有的功能。它是一个标准的PHP函数,它返回数组的当前元素。由于刚刚创建了数组,因此当前元素是第一个元素,即包含数据库列表的对象。

因此,$databases = current($res->toArray());会为您提供一个对象($databases),该对象具有属性databases,其中包含可以使用foreach进行迭代的数据库对象数组。