我試圖重現mysql_fetch_object()
的功能。如果我理解的很好,它所做的就是返回MySQL查詢作爲stdClass的對象,如果你沒有參數或者其他類,如果你給它的話。重現mysql_fetch_object()的功能
我說我需要重現,因爲我需要破解一個類來與Mongo做這件事。我解釋一下自己。
我從Mongo得到的結果實際上是一個數組,我需要它們將它作爲stdClass或我傳遞給此函數的類來檢索。我如何做到這一點?
預先感謝您
我試圖重現mysql_fetch_object()
的功能。如果我理解的很好,它所做的就是返回MySQL查詢作爲stdClass的對象,如果你沒有參數或者其他類,如果你給它的話。重現mysql_fetch_object()的功能
我說我需要重現,因爲我需要破解一個類來與Mongo做這件事。我解釋一下自己。
我從Mongo得到的結果實際上是一個數組,我需要它們將它作爲stdClass或我傳遞給此函數的類來檢索。我如何做到這一點?
預先感謝您
您可以將resultent數組轉換成目標
$result= (object) $result_array;
通過stdClass的傳遞可以通過鑄造(對象)來完成。
$object = (object)$array;
任何其他類是可能的,但我不建議這樣做。我已經寫了一些它:Make my own (non-database) fetch_object function
是這樣的?
$newObj = array_to_object($yourArray);
$newObj->SomeField = ...;
編輯:
function array_to_object($array = array()) {
if (!empty($array)) {
$data = false;
foreach ($array as $akey => $aval) {
$data -> {$akey} = $aval;
}
return $data;
}
return false;
}
然後,您可以通過調用該函數的結果笑,真的,所需要的是$obj = (object)$array
?
$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"
}
,如果我不想stdClass的,我想的具有類似Model_Example名稱的對象?謝謝 – udexter