软件环境
php 7.1.33 + windows 10 操作系统
代码示例
<?php
class MyIterator implements Iterator
{
private $_myArr = [
'a' => 1024,
128,
'c' => 8421,
256
];
/**
* 当前元素的值
*
* @return mixed
*/
public function current()
{
return current($this->_myArr);
}
/**
* 移动指针指向下一个元素
*/
public function next()
{
next($this->_myArr);
}
/**
* 当前元素的键名
*
* @return mixed
*/
public function key()
{
return key($this->_myArr);
}
/**
* 当前元素是否存在
*
* @return bool
*/
public function valid()
{
return $this->current() !== false;
}
/**
* 移动指针指向第一个元素(复位)
*/
public function rewind()
{
reset($this->_myArr);
}
}
$obj = new MyIterator();
foreach ($obj as $key => $value) {
echo "{$key} => {$value}\n";
}
运行结果

本文展示了一个在PHP环境下自定义迭代器的具体实现过程。通过一个示例代码,详细介绍了如何创建一个符合Iterator接口规范的类,该类能够遍历包含不同类型元素的数组。文章深入解析了current、next、key、valid和rewind等方法的使用,帮助读者理解迭代器的工作原理。
268

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



