构建一个可被forwach遍历的迭代器
class TestIterator implements Iterator {
private $items;
function __construct($items) {
$this->items = $items;
}
// 返回当前元素
public function current() {
return current($this->items);
}
// 返回当前元素的键
public function key() {
return key($this->items);
}
// 向前移动到下一个元素
public function next() {
return next($this->items);
}
// 返回到迭代器的第一个元素
public function rewind() {
reset($this->items);
}
// 检查当前位置是否有效
public function valid() {
return($this->current()!==false);
}
}
$items = new TestIterator(['id'=>'1','name'=>'2']);
foreach($items as $key=>$item) {
echo $key,'=>',$item,"\n";
}
本文详细介绍了一种在PHP中创建自定义迭代器的方法,通过实现Iterator接口,可以为任何数据集提供统一的遍历方式。文章展示了如何利用类TestIterator实现对数组的遍历,并提供了完整的代码示例。
5419

被折叠的 条评论
为什么被折叠?



