概述
echo " ";
class Test implements Iterator{
private $list;
private $i=0;
private $valid=false;
public function __construct($array=array()){
$this->list=$array;
}
/**
* 将索引指定到首个元素
* {@inheritDoc}
* @see Iterator::rewind()
*/
function rewind(){
echo "第".++$this->i."步:执行 ".__METHOD__."
";
$this->valid=(false !==reset($this->list));
}
/**
* 返回当前元素
* {@inheritDoc}
* @see Iterator::current()
*/
function current(){
echo "第".++$this->i."步:执行 ".__METHOD__."
";
return current($this->list);
}
/**
* 索引指向下一个元素
* {@inheritDoc}
* @see Iterator::next()
*/
function next(){
echo "第".++$this->i."步:执行 ".__METHOD__."
";
$this->valid=(false !== next($this->list));
}
/**
* 返回当前元素键值
* {@inheritDoc}
* @see Iterator::key()
*/
function key(){
echo "第".++$this->i."步:执行 ".__METHOD__."
";
return key($this->list);
}
/**
* 判断下个是否有下个元素
* {@inheritDoc}
* @see Iterator::valid()
*/
function valid(){
echo "第".++$this->_step."步:执行 ".__METHOD__."
";
return $this->valid;
}
}
$list=array(1,2,3);
$test=new Test($list);
//foreach循环方式
foreach ($test as $key=>$val){
echo "输出索引为".$key."的元素值为:".$val."
";
}
echo "----------------结束分隔线-----------------------
";
$second=new Test($list);
//while循环方式
$second->rewind();
while($second->valid()){
echo "输出索引为".$second->key()."的元素值为:".$second->current()."
";
$second->next();
}
echo "--------------------结束分隔线----------------------
";
输出格式:
第1步:执行 Test::rewind
第1步:执行 Test::valid
第2步:执行 Test::current
第3步:执行 Test::key
输出索引为0的元素值为:1
第4步:执行 Test::next
第2步:执行 Test::valid
第5步:执行 Test::current
第6步:执行 Test::key
输出索引为1的元素值为:2
第7步:执行 Test::next
第3步:执行 Test::valid
第8步:执行 Test::current
第9步:执行 Test::key
输出索引为2的元素值为:3
第10步:执行 Test::next
第4步:执行 Test::valid
----------------结束分隔线-----------------------
第1步:执行 Test::rewind
第1步:执行 Test::valid
第2步:执行 Test::key
第3步:执行 Test::current
输出索引为0的元素值为:1
第4步:执行 Test::next
第2步:执行 Test::valid
第5步:执行 Test::key
第6步:执行 Test::current
输出索引为1的元素值为:2
第7步:执行 Test::next
第3步:执行 Test::valid
第8步:执行 Test::key
第9步:执行 Test::current
输出索引为2的元素值为:3
第10步:执行 Test::next
第4步:执行 Test::valid
--------------------结束分隔线----------------------
执行到valid返回false时,则循环结束
最后
以上就是飘逸果汁为你收集整理的php 遍历迭代 方法,PHP-Iterator迭代器(遍历)接口详讲的全部内容,希望文章能够帮你解决php 遍历迭代 方法,PHP-Iterator迭代器(遍历)接口详讲所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复