要自定義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 循環中,我們通過自定義的迭代器類來遍歷數組元素,并輸出它們的鍵和值。
您可以根據自己的需求來修改和擴展這個示例,來創建符合您需求的自定義迭代器類。