1、本身也是一个迭代器,当被实例化时,又需要被传递到另一个迭代器内部保存,即内部迭代InnerIterator。
2、可通过继承IteratorIterator实现对原有迭代器功能的升级。
其构造参数也必须是迭代器,而参数签名本身就是需要一个对象,实现了Traversable接口。
实例
classOutIteratorextendsIteratorIterator { publicfunctionrewind() { echo__METHOD__,PHP_EOL; returnparent::rewind(); } publicfunctionvalid() { echo__METHOD__,PHP_EOL; returnparent::valid(); } publicfunctioncurrent() { echo__METHOD__,PHP_EOL; returnparent::current().'_suffix'; } publicfunctionkey() { echo__METHOD__,PHP_EOL; returnparent::key(); } publicfunctionnext() { echo__METHOD__,PHP_EOL; returnparent::next(); } publicfunctiongetInnerIterator() { echo__METHOD__,PHP_EOL; returnparent::getInnerIterator(); } } $iterator=newOutIterator(newArrayIterator([1,2,3])); foreach($iteratoras$k=>$v){ echo$k,':',$v,PHP_EOL; } //OutIterator::rewind //OutIterator::valid //OutIterator::current //OutIterator::key //0:1_suffix //OutIterator::next //OutIterator::valid //OutIterator::current //OutIterator::key //1:2_suffix //OutIterator::next //OutIterator::valid //OutIterator::current //OutIterator::key //2:3_suffix //OutIterator::next //OutIterator::valid原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容