<?php
// 使对象可以像数组一样进行foreach循环 (Iterator迭代器)
class Test implements Iterator
{
private $arr = [];
// 索引游标
private $_key = 0;
public function __construct(array $arr)
{
$this->arr = $arr;
}
/**
* 重置索引游标
*/
public function rewind()
{
$this->_key = 0;
}
/**
* 判断当前索引游标指向的元素是否有效
* 返回false循环结束
* @return bool
*/
public function valid()
{
return isset($this->arr[$this->_key]);
}
/**
* 返回当前索引游标指向的元素
* @return mixed
*/
public function current()
{
return $this->arr[$this->_key];
}
/**
* 返回当前索引游标指向的键
* @return int
*/
public function key()
{
return $this->_key;
}
/**
* 移动当前索引游标到下一个元素
*/
public function next()
{
$this->_key++;
}
}
$arr = [
['id'=>1,'name'=>'张三'],
['id'=>2,'name'=>'张三2'],
['id'=>3,'name'=>'张三3'],
];
$testClass = new Test($arr);
foreach ($testClass as $key=>$item){
echo 'key==='.$key;
var_dump($item);
}
暂无评论