>  기사  >  백엔드 개발  >  php - 반복자 인터페이스

php - 반복자 인터페이스

伊谢尔伦
伊谢尔伦원래의
2016-11-22 11:05:011150검색

자체 외부 반복자 또는 클래스를 통해 내부적으로 반복할 수 있는 인터페이스입니다.

인터페이스 요약

Iterator extends Traversable {
    /* 方法 */
    abstract public mixed current ( void )
    abstract public scalar key ( void )
    abstract public void next ( void )
    abstract public void rewind ( void )
    abstract public boolean valid ( void )
}

사전 정의된 반복자

PHP는 이미 SPL 반복자와 같은 일상 작업을 위한 일부 반복자를 제공합니다.

예제 #1 기본 사용법

이 예는 foreach를 사용할 때 반복기 메서드의 호출 순서를 보여줍니다.

<?php
    class myIterator implements Iterator {
        private $position = 0;
        private $array = array(
            "firstelement",
            "secondelement",
            "lastelement",
        );
        public function __construct() {
            $this->position = 0;
        }
        function rewind() {
            var_dump(__METHOD__);
            $this->position = 0;
        }
        function current() {
            var_dump(__METHOD__);
            return $this->array[$this->position];
        }
        function key() {
            var_dump(__METHOD__);
            return $this->position;
        }
        function next() {
            var_dump(__METHOD__);
            ++$this->position;
        }
        function valid() {
            var_dump(__METHOD__);
            return isset($this->array[$this->position]);
        }
    }
    $it = new myIterator;
    foreach($it as $key => $value) {
        var_dump($key, $value);
        echo "\n";
    }
?>

위 루틴의 출력은 다음과 유사합니다.

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "firstelement"
string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"
string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "lastelement"
string(16) "myIterator::next"
string(17) "myIterator::valid"

메서드 목록

Iterator::current — 현재 요소를 반환합니다

Iterator: :key — 현재 요소의 키를 반환합니다.

Iterator::next — 다음 요소로 앞으로 이동

Iterator::rewind — 반복자의 첫 번째 요소로 돌아갑니다.

Iterator::valid — 현재 위치가 유효한지 확인


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.