php迭代器的执行过程
2013-04-29 22:40
513 查看
要使用迭代器就要先实现Iterator接口,该接口有以下五个方法:
Iterator::current — 返回当前元素
Iterator::key — 返回当前元素的键
Iterator::next — 向前移动到下一个元素
Iterator::rewind — 返回到迭代器的第一个元素
Iterator::valid — 检查当前位置是否有效
实现该接口的类必须实现这五个方法
以下是程序执行结果:
从上面的结果中很容易看出foreach循环的时候都调用了那些方法了吧
Iterator::current — 返回当前元素
Iterator::key — 返回当前元素的键
Iterator::next — 向前移动到下一个元素
Iterator::rewind — 返回到迭代器的第一个元素
Iterator::valid — 检查当前位置是否有效
实现该接口的类必须实现这五个方法
<?php /** * php迭代器的使用 */ class MyIterator implements Iterator { private $var = array(); public function __construct($array) { if (is_array($array)) { $this->var = $array; } } public function rewind() { echo "倒回第一个元素\n"; reset($this->var); } public function current() { $var = current($this->var); echo "当前元素: $var\n"; return $var; } public function key() { $var = key($this->var); echo "当前元素的键: $var\n"; return $var; } public function next() { $var = next($this->var); echo "移向下一个元素: $var\n"; return $var; } public function valid() { $var = $this->current() !== false; echo "检查有效性: {$var}\n"; return $var; } } $values = array('one','two','three'); $it = new MyIterator($values); foreach ($it as $k => $v) { print "此时键值对 -- key $k: value $v\n\n"; }
以下是程序执行结果:
倒回第一个元素 | |
当前元素: one | |
检查有效性: 1 | |
当前元素: one | |
当前元素的键: 0 | |
此时键值对 -- key 0: value one | |
移向下一个元素: two | |
当前元素: two | |
检查有效性: 1 | |
当前元素: two | |
当前元素的键: 1 | |
此时键值对 -- key 1: value two | |
移向下一个元素: three | |
当前元素: three | |
检查有效性: 1 | |
当前元素: three | |
当前元素的键: 2 | |
此时键值对 -- key 2: value three | |
移向下一个元素: | |
当前元素: | |
检查有效性: |
相关文章推荐
- 看看PHP迭代器的内部执行过程
- PHP迭代器的内部执行过程详解
- 看看PHP迭代器的内部执行过程
- 看看PHP迭代器的内部执行过程
- 看看PHP迭代器的内部执行过程
- PHP迭代器的内部执行过程详解
- php执行过程
- Drupal安装过程执行php超时问题
- php执行的过程
- PHP生命周期,内核执行过程
- 【华安php入门系列】--第1天-php的执行方式、执行过程
- PHP的trim()函数的执行过程
- 17.PHP内核探索:解释器的执行过程
- php脚本的执行过程(编译与执行相分离)
- PHP是如何执行代码解析过程的
- PHP内核解密系列:zend_execute的执行过程
- PHP内核探索:zend_execute的具体执行过程
- PHP - Smarty模板引擎 - Manual手册 - 中文版 - Chapter 8. Custom Functions第8章自定义函数 - {assign}用于在模板执行过程中设置模板变量
- php的执行方式、执行过程与加速工具