使用php在数组中存储对象
发布时间:2020-12-13 18:15:57 所属栏目:PHP教程 来源:网络整理
导读:我有一个从数据库中提取行的函数,content- id和content-类型用于动态调用已加载模型中的amethod来获取和格式化对象详细信息.返回对象后,它将添加到数组中.一切都很好,除了当我来使用数组虽然它有正确数量的项目,它们都包含相同的对象,即使我知道它们返回不同
我有一个从数据库中提取行的函数,content-> id和content->类型用于动态调用已加载模型中的amethod来获取和格式化对象详细信息.返回对象后,它将添加到数组中.一切都很好,除了当我来使用数组虽然它有正确数量的项目,它们都包含相同的对象,即使我知道它们返回不同.我完全失去了这个,任何帮助/想法都会很棒!
代码如下: foreach($query->result() as $content) { $item = $this->{'mod_'.$content->type}->get($content->id); print_r($item); $items[] = $item; } print_r($items); 而print_r语句产生了这个: stdClass Object ( [id] => 30 [type] => page ) stdClass Object ( [id] => 29 [type] => page ) Array ( [0] => stdClass Object ( [id] => 29 [type] => page ) [1] => stdClass Object ( [id] => 29 [type] => page ) )
我猜想问题是你每次都通过引用从get函数到达同一个对象,然后通过引用添加它到数组,导致在get函数中修改项时修改数组中的所有项.如果是这种情况,以下情况应该有效:
foreach($query->result() as $content) { $item = $this->{'mod_'.$content->type}->get($content->id); print_r($item); $items[] = clone $item; } print_r($items); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |