이 문서의 예에서는 PHP 사전 정의 인터페이스의 Iterator 사용법을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하세요.
내부적으로 자체 외부 반복자 또는 클래스 인터페이스를 반복할 수 있습니다.
Iterator extends Traversable { /* 方法 */ abstract public current ( void ) : mixed abstract public key ( void ) : scalar abstract public next ( void ) : void abstract public rewind ( void ) : void abstract public valid ( void ) : bool }
<?php class myIterator implements Iterator { private $position = 0; private $array = array( 'first_element', 'second_element', 'last_element', ); /** * 重置键的位置 */ public function rewind(): void { var_dump(__METHOD__); $this->position = 0; } /** * 返回当前元素 */ public function current() { var_dump(__METHOD__); return $this->array[$this->position]; } /** * 返回当前元素的键 * @return int */ public function key(): int { var_dump(__METHOD__); return $this->position; } /** * 将键移动到下一位 */ public function next(): void { var_dump(__METHOD__); ++$this->position; } /** * 判断键所在位置的元素是否存在 * @return bool */ public function valid(): bool { var_dump(__METHOD__); return isset($this->array[$this->position]); } } $it = new myIterator; foreach ($it as $key => $value) { var_dump($key, $value); echo "\n"; }
출력 결과:
string 'myIterator::rewind' (길이=18)
string 'myIterator::valid' (길이=17)
string 'myIterator:: current' (길이=19)
string 'myIterator::key' (길이=15)
int 0
string 'first_element' (길이=13)
string 'myIterator::next' (길이=16)
string 'myIterator ::valid' (길이=17)
string 'myIterator::current' (길이=19)
string 'myIterator::key' (길이=15)
int 1
string 'second_element' (길이=14)
string 'myIterator::next' (길이=16)
string 'myIterator::valid' (길이=17)
string 'myIterator::current' (길이=19)
string 'myIterator::key' (길이=15)
int 2
string 'last_element' (길이=12)
string 'myIterator::next' (길이=16)
string 'myIterator::valid' (길이=17)
결과에서 알 수 있는 것은 클래스가 구현되면 Iterator 인터페이스는 클래스 인스턴스 데이터 세트를 구현할 때 먼저 데이터 세트의 키를 재설정한 다음 점차적으로 뒤로 이동하며 매번 현재 요소와 현재 키를 반환합니다.
관련 학습 권장 사항: 초보부터 마스터까지 PHP 프로그래밍
위 내용은 PHP 사전 정의 인터페이스의 반복자 사용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!