什么是相当于' data[] = $var '的对象?


What is the equivalent of `data[] = $var` for an object?

我正在通过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

您可以使用数组来存储数据,然后将其转换为对象!