1 Star 0 Fork 5

mickelfeng / PHP_SPL

forked from Paul / PHP_SPL 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
4_3_OuterIterator.php 1.04 KB
一键复制 编辑 原始数据 按行查看 历史
<?php
/**
* OuterIterator接口:可以对迭代器进行一定的处理后返回
* IteratorIterator类是OuterIterator接口的实现,扩展的时候可以直接继承IteratorIterator类。
*
* 利用OutIterator接口对ArrayIterator迭代器的current和key方法进行内部处理(重写)
*/
$array = ["Value1", "Value2", "Value3", "Value4"];
$ArrayIt = new ArrayIterator($array);
// 正常的遍历
foreach ($ArrayIt as $key => $value) {
echo $key . ":" . $value . PHP_EOL;
}
/*
0:Value1
1:Value2
2:Value3
3:Value4
*/
echo PHP_EOL;
class OutIterator extends IteratorIterator
{
public function current()
{
return parent::current() . "_tail";
}
public function key()
{
return "pre_" . parent::key();
}
}
// 对ArrayIterator迭代器的current和key方法进行内部处理(重写)
$outerObj = new OutIterator($ArrayIt);
foreach ($outerObj as $key => $value) {
echo $key . ":" . $value . PHP_EOL;
}
/*
pre_0:Value1_tail
pre_1:Value2_tail
pre_2:Value3_tail
pre_3:Value4_tail
*/
PHP
1
https://gitee.com/mickelfeng/PHP_SPL.git
git@gitee.com:mickelfeng/PHP_SPL.git
mickelfeng
PHP_SPL
PHP_SPL
master

搜索帮助