所以我有一个对象,其中包含私有数据成员中的一组对象。我现在可以通过覆盖ArrayObject
和offsetGet($index)
的count()
函数来用for
循环循环它,但我也想在foreach
循环中循环它。
我需要最少扩展哪些功能才能添加此功能?
使用 SPL 迭代器接口 有关详细信息,请参阅 http://uk.php.net/manual/en/class.iterator.php
AFAIK 您可以在ArrayObject
上直接使用foreach
:
$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