數組我使用mysqli擴展,並將結果綁定到一個對象:mysqli的語句:取()結果
class Item {
public $id, $name;
}
$Item = new Item;
$stmt->bind_result($Item->id, $Item->name);
到$stmt->fetch()
每次調用將覆蓋這成爲引用$項目的屬性。如果我只是克隆對象 - 這些引用仍然存在,這兩種情況同時改變:
object(Item)#1 (2) {
["id"]=>
&int(1)
["name"]=>
&string(4) "name"
}
所以應該有一種方法來解引用他們,所以clone
真叫一個副本,而不是一組引用的數據的。是否有一種簡單而靈活的方式來檢索所有數據,以便將其存儲爲一組對象?主要問題是如何刪除引用:&string
。
我看到的唯一的解決辦法是實例化另一個對象,並手動複製所有的屬性:
$Item2 = new Item;
foreach ($Item as $prop => $val)
$Item2->$prop = $val;
但是這似乎是一個矯枉過正的:它會複製所有屬性(包括一些額外的人這實際上不是引用),這是沒有必要的,而且 - 是對性能的懲罰。
Actially,我寫結合的結果字段對象自動地類。它唯一缺乏的是存儲行的選項,而不僅僅是迭代和遺忘。 – kolypto 2010-08-01 01:49:32