spl应用场景 -- IteratorIterator迭代器
来源:互联网 发布:单桂敏淘宝店铺 编辑:程序博客网 时间:2024/06/16 12:20
spl应用场景 – IteratorIterator迭代器
* 1.介绍*
改迭代器接口,主要可以 “迭代” 迭代器, 例如
ArrayIterator
类结构如下:
IteratorIteratorimplements OuterIterator {/* 方法 */public __construct ( Traversable $iterator )public mixed current ( void )public Traversable getInnerIterator ( void )public scalar key ( void )public void next ( void )public void rewind ( void )public bool valid ( void ) }
2.参考示例 枚举
<?phpclass Enumerator extends IteratorIterator { /** * Initial value for enumerator * @param int */ protected $start = 0; /** * @param int */ protected $key = 0; /** * @param Traversable $iterator * @param scalar $start */ public function __construct(Traversable $iterator, $start = 0) { parent::__construct($iterator); $this->start = $start; $this->key = $this->start; } public function key() { return $this->key; } public function next() { ++$this->key; parent::next(); } public function rewind() { $this->key = $this->start; parent::rewind(); }}$enumerator = new Enumerator( new ArrayIterator(['php', 'java', 'python']), 7000 );print_r(iterator_to_array($enumerator));/* 输出 * array(3) { 7000 => 'php', 7001 => 'java', 7002 => 'python' } */?>
总结:
1. new Enumerator()时候,传入是ArrayIterator 迭代器,其构造函数第一个参数类型是Traversable,主要判断迭代器是否支持foreach
2.IteratorIterator是众多迭代器继承的
0 0
- spl应用场景 -- IteratorIterator迭代器
- IteratorIterator类-SPL库
- spl 教程一 基础应用
- Spl迭代器--AppendIterator
- TP5+SPL迭代器--MultipleIterator
- TP5+SPL----FilesystemIterator(迭代器)
- spl 教程三 迭代器
- SPL
- SPL
- php spl之迭代器iterator
- SPL(2)--- ArraryIterator迭代器
- Oracle442个应用场景------------基础应用场景
- SPL学习笔记之二:迭代器
- Php-SPL库中的迭代器接口详解
- Php SPL库中的迭代器接口详解
- SPL学习笔记之二:迭代器
- SPL学习笔记(3)---迭代器
- SPL的常用迭代器(3)
- 一个简单的redis性能测试程序和性能测试结果
- yii2读写分离配置
- redis里能不能针对set数据的每个member设置过期时间?
- date命令
- C++ iostream 迭代器
- spl应用场景 -- IteratorIterator迭代器
- java集合类深入分析之TreeMap/TreeSet篇
- Ext JS - 日期及格式转换
- Android Handler机制初探
- session入mysql
- HashMap源码深入解析
- QT 控件示例收集
- Android滑动选择控件 WheelView
- 本地mysql数据库5.6.24配置