PHP에서 ITERATOR는 객체가 배열과 같은 횡단을 방해 할 수있는 핵심 인터페이스입니다. 반복자 인터페이스의 5 가지 방법을 구현함으로써, 클래스의 인스턴스는 foreach 문을 사용하여 반복 할 수 있으므로 수집 데이터를보다 직관적으로 처리 할 수 있습니다.
반복자 인터페이스는 다음 5 가지 방법을 정의합니다.
이 인터페이스를 구현하는 여러 내장 클래스 (예 : Arrayiterator , SpldoublyLinkedList , recursiveiteratoriterator )가 있으므로 Foreach 루프에서 직접 사용할 수 있습니다.
PHP에서 배열은 자연스럽게 트래버스에 대한 각 성명서를 지원합니다. 간단한 예는 다음과 같습니다.
$arr = array('a', 'b', 'c');
foreach ($arr as $key => $value) {
echo "$key: $value\n";
}
이러한 방식으로 배열을 통과함으로써 코드는 간결 할뿐만 아니라 배열 위트 스크립트를 수동으로 처리하는 문제를 피합니다.
배열 외에도 개발자는 클래스를 사용자 정의하고 반복자 인터페이스를 구현하여 객체를 Foreach를 사용하여 반복 할 수 있습니다. 다음은 사용자 정의 반복자 클래스의 예입니다.
class MyIterator implements Iterator {
private $position = 0;
private $array = array(
"firstelement",
"secondelement",
"lastelement",
);
public function __construct() {
$this->position = 0;
}
public function rewind() {
$this->position = 0;
}
public function current() {
return $this->array[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
public function valid() {
return isset($this->array[$this->position]);
}
}
$it = new MyIterator;
foreach ($it as $key => $value) {
echo "$key: $value\n";
}
이 코드에서 Myiterator 클래스는 인스턴스 객체가 배열처럼 통과 할 수 있도록 반복자 인터페이스의 5 가지 방법을 구현합니다. 이 방법은 데이터 구조 또는 사용자 정의 액세스 로직이 필요한 시나리오에 적합합니다.
반복자 인터페이스는 PHP의 데이터 트래버스에 대한 통합 표준을 제공합니다. 인터페이스가 구현되는 한 배열, 내장 컬렉션 클래스 또는 사용자 정의 객체이든, Foreach 문을 사용하여 우아하게 통과 할 수 있습니다. 사용자 지정 반복자를 통해 개발자는 데이터 액세스 방법을 유연하게 제어하고 코드의 유지 관리 및 확장 성을 향상시킬 수 있습니다.