通过扩展ArrayObject,让对象循环为带有foreach()的数组

时间:2012-06-15 12:03:20

标签: php foreach arrayobject

所以我有一个对象,它包含一个私有数据成员中的一组对象。我现在可以通过覆盖forcount()的{​​{1}}函数来循环ArrayObject循环,但我也希望在offsetGet($index)内循环它环。

我需要哪些功能才能最低限度地扩展以添加此功能?

2 个答案:

答案 0 :(得分:3)

使用SPL迭代器界面,请参阅http://uk.php.net/manual/en/class.iterator.php了解详细信息

答案 1 :(得分:2)

AFAIK您可以在foreach上直接使用ArrayObject

$ao = new ArrayObject(array(1, 2, 3, 4));
$res = 0;
foreach($ao as $el) {
    $res += $el;
}
echo 'ArrayObject elements sum: '.$res;

示例: http://codepad.org/uQDGQ03A