要自定义PHP迭代器,您需要创建一个实现了 Iterator 接口的类。这个接口包含了以下方法:
下面是一个简单的示例代码,演示如何自定义一个简单的迭代器类:
class MyIterator implements Iterator {
private $data = array();
private $position = 0;
public function __construct($data) {
$this->data = $data;
}
public function current() {
return $this->data[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
$this->position++;
}
public function rewind() {
$this->position = 0;
}
public function valid() {
return isset($this->data[$this->position]);
}
}
$data = array('apple', 'banana', 'cherry');
$iterator = new MyIterator($data);
foreach ($iterator as $key => $value) {
echo $key . ': ' . $value . "\n";
}
在这个示例中,我们创建了一个名为 MyIterator 的类,实现了 Iterator 接口,并在构造函数中传入了一个数组作为数据源。在 foreach 循环中,我们通过自定义的迭代器类来遍历数组元素,并输出它们的键和值。
您可以根据自己的需求来修改和扩展这个示例,来创建符合您需求的自定义迭代器类。