概述
在学习的时候,发了php提供了iterator迭代器的接口,自己在本地跑了一下,代码如下:
<?php
class Account implements Iterator
{
private $_names = ['Tom', 'Bill', 'Jason', 'Amy', 'Jenny'];
private $_key = 0;//索引游标
private $_step = 0;//执行步骤
public function current()
{
$this->_step++;
echo $this->_step . '步,current->获取当前值' . '<br>';
return $this->_names[$this->_key];
}
public function next()
{
$this->_step++;
echo $this->_step . '步,next->游标指向下一个' . '<br>';
$this->_key++;
}
public function key()
{
$this->_step++;
echo $this->_step . '步,key->获取当前键名' . '<br>';
return $this->_key;
}
public function valid()
{
$this->_step++;
echo $this->_step . '步,valid->判断是否有值' . '<br>';
if (!isset($this->_names[$this->_key])) {
echo '没有值了,key是' . $this->_key . '<br>';
} else {
echo '还有值,key是' . $this->_key . '<br>';
return $this->_names[$this->_key];
}
}
public function rewind()
{
$this->_step++;
echo $this->_step . '步,rewind->游标归零' . '<br>';
$this->_key = 0;
}
}
$objAccount = new Account();
foreach ($objAccount as $key => $value) {
echo 'foreach输出:key是' . $key . ' => ' . 'value是' . $value . '<br>';
}
结果如下:
1步,rewind->游标归零
2步,valid->判断是否有值
还有值,key是0
3步,current->获取当前值
4步,key->获取当前键名
foreach输出:key是0 => value是Tom
5步,next->游标指向下一个
6步,valid->判断是否有值
还有值,key是1
7步,current->获取当前值
8步,key->获取当前键名
foreach输出:key是1 => value是Bill
9步,next->游标指向下一个
10步,valid->判断是否有值
还有值,key是2
11步,current->获取当前值
12步,key->获取当前键名
foreach输出:key是2 => value是Jason
13步,next->游标指向下一个
14步,valid->判断是否有值
还有值,key是3
15步,current->获取当前值
16步,key->获取当前键名
foreach输出:key是3 => value是Amy
17步,next->游标指向下一个
18步,valid->判断是否有值
还有值,key是4
19步,current->获取当前值
20步,key->获取当前键名
foreach输出:key是4 => value是Jenny
21步,next->游标指向下一个
22步,valid->判断是否有值
没有值了,key是5
迭代器是个接口,引用该接口的类中,必须定义接口提供的方法。
最后
以上就是清脆小伙为你收集整理的php的iterator迭代器,代码示例的全部内容,希望文章能够帮你解决php的iterator迭代器,代码示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复