我正在通过mysql查询循环并将值存储到对象。我想在存储数据时自动迭代对象,就像迭代数组一样。
我是这样做的:
$i = 0;
foreach( $query->result() as $row )
{
$data->$i = $row;
$i++;
}
我想模仿下面的代码,但是对于一个对象,在上面的代码中删除对$i
的需要:
foreach( $query->result() as $row )
$data[] = $row;
当你在foreach或while循环中存储变量时,迭代对象的等效$data[] = $row
是什么?
注意:很明显我不应该以这种方式使用对象。你能否解释一下为什么会这样?
没有,因为对象不是这样工作的。此外,如果您想以线性方式存储内容,那么无论如何都不应该以这种方式使用对象。
如果你想创建一个可以使用foreach()
迭代的对象,它必须实现迭代器接口,参见http://php.net/iterator
您可以使用数组来存储数据,然后将其转换为对象!