Iterator(迭代器)接口 --对象循环遍历
2015-11-23 19:34
288 查看
<?php class MyIterator implements Iterator { private $var = array(); public function __construct ( $array ) { if ( is_array ( $array )) { $this -> var = $array ; } } //返回到迭代器的第一个元素 public function rewind () { echo "rewinding返回到迭代器的第一个元素\n" ; reset ( $this -> var ); } //返回当前元素 public function current () { $var = current ( $this -> var ); echo "current返回当前元素: $var \n" ; return $var ; } //返回当前元素的键 public function key () { $var = key ( $this -> var ); echo "key返回当前元素的键: $var \n" ; return $var ; } //向前移动到下一个元素 public function next () { $var = next ( $this -> var ); echo "next向前移动到下一个元素: $var \n" ; return $var ; } //检查当前位置是否有效 public function valid () { $var = $this -> current () !== false ; echo "valid检查当前位置是否有效: { $var } \n" ; return $var ; } } $values = array( 1 , 2 , 3 ); $it = new MyIterator ( $values ); foreach ( $it as $a => $b ) { print " $a : $b \n" ; } ?>
相关文章推荐
- 腾云驾雾了解Windows10和微软私有云
- iOS编程学习过程中常见bug记录-持续记录
- pc端web前端开发
- ebs ar inovice sql
- 在html中嵌入markdown
- <LeetCode><Medium> 5 Longest Palindromic Substring #爆发式搜索
- 淘宝的架构
- angularjs $broadcast $emit $on 事件触发controller间的值传递
- MySQL 存储引擎
- Oracle数据库启动问题
- 获取屏幕或图片的宽和高
- const 和static const 的区别
- IOS 如何在两个控制器之间传值-使用delegate
- Spring动态加载、编辑数据源
- 用故事讲述淘宝网架构成长的危机与机遇
- 不用main方法,使用静态方法也可以打印Hello World
- Ndk 开发自己搞
- 表的管理与操作
- android学习笔记4——spannablestring
- Raid及mdadm命令