我正在尝试重现mysql_fetch_object()
的功能。如果我理解得很好,它的作用是将MySQL查询作为stdClass的对象返回,如果你没有param或另一个类,如果你给它。
我说我需要重现,因为我需要破解一个类来与Mongo做这件事。我自己解释一下。
我将Mongo的结果实际上作为一个数组,我需要它们作为stdClass或我传递给这个函数的类来检索它。我怎么能这样做?
提前谢谢
答案 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"
}