要使用迭代器就要先实现Iterator接口,该接口有以下五个方法:
实现该接口的类必须实现这五个方法
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 | |
移向下一个元素: | |
当前元素: | |
检查有效性: |