思考:一个班有50个学生,如何实现遍历班级就是遍历学生?
答:使用内置的迭代器
Iterator是PHP内置的接口,提供了5个抽象方法,在子类中实现这5个抽象方法就实现了迭代的效果
遍历:操作自己,比如遍历数组,遍历对象
迭代:操作自己的属性,比如迭代对象中属性数组
<?php
//迭代器
class Myclass implements Iterator {
private $list=array('tom','berry','ketty');
//指针复位
public function rewind() {
reset($this->list); //复位list指针,指针指向第一个单元
}
//验证当前指针是否合法
public function valid() {
return key($this->list)!==null;
}
//获取当前指针的键
public function key() {
return key($this->list);
}
//获取当前值
public function current() {
return current($this->list);
}
//指针下移
public function next() {
next($this->list);
}
}
$class=new MyClass();
//遍历对象就是遍历对象中的数组
foreach($class as $v) {
echo $v,'<br>';
}
网友评论