重现mysql_fetch_object()的功能

时间:2011-11-17 16:26:17

标签: php

我正在尝试重现mysql_fetch_object()的功能。如果我理解得很好,它的作用是将MySQL查询作为stdClass的对象返回,如果你没有param或另一个类,如果你给它。

我说我需要重现,因为我需要破解一个类来与Mongo做这件事。我自己解释一下。

我将Mongo的结果实际上作为一个数组,我需要它们作为stdClass或我传递给这个函数的类来检索它。我怎么能这样做?

提前谢谢

4 个答案:

答案 0 :(得分:7)

您可以将结果数组转换为对象

$result= (object) $result_array;

答案 1 :(得分:3)

通过stdClass传递可以通过转换为(object)来完成。

$object = (object)$array;

任何其他类都是可能的,但我不推荐它。我写了一些内容:Make my own (non-database) fetch_object function

答案 2 :(得分:0)

这样的东西?

function array_to_object($array = array()) {
    if (!empty($array)) {
        $data = false;
        foreach ($array as $akey => $aval) {
            $data -> {$akey} = $aval;
        }
        return $data;
    }
    return false;
}

然后您可以使用以下方法调用该函数的结果:

$newObj = array_to_object($yourArray);
$newObj->SomeField = ...;

编辑:大声笑,真的,只需要$obj = (object)$array

答案 3 :(得分:0)

$result = new StdClass;
$result->foo = 'Lorem ipsum';
$result->bar = 'Dolor sit amet';
var_dump($result);

...或简单地将其他东西作为对象:

$result = (object)NULL;
$result->foo = 'Lorem ipsum';
$result->bar = 'Dolor sit amet';
var_dump($result);

两个片段都打印相同的输出:

object(stdClass)#1 (2) {
  ["foo"]=>
  string(11) "Lorem ipsum"
  ["bar"]=>
  string(14) "Dolor sit amet"
}