数组我使用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