작동 원리
1. 첫 번째 반복 전에 iterator::rewind() 메서드를 실행합니다.
한 번만 실행되고 반복자의 첫 번째 요소를 반환하지만 메서드에 반환 값이 없습니다.
2. 첫 번째 요소가 유효한지 확인합니다.
인증 방법을 사용자 정의할 수 있습니다. 반환 값이 true이면 실행이 계속되고, 반환 값이 false이면 반복이 종료됩니다.
3. foreach는 계속해서 Iterator를 호출합니다.
지정된 기능의 키와 값을 반환합니다.
4. foreach의 메서드 본문
var_dump($key,$value)
5. 각 반복 후에 Iterator를 호출하여 다음 요소를 결정하고 두 번째 단계를 반복합니다.
예
string(18) "myIterator::rewind" //반복이 시작되기 전에 rewind 메소드를 호출하고 반복자의 첫 번째 요소로 돌아가 실행 $this->position = 1; string(17) "myIterator::valid" //현재 요소 $this->array[1]이 유효한지 확인하고 유효한 경우 실행을 계속합니다. string(19) "myIterator::current" // 현재 요소에 해당하는 값을 반환합니다. $this->array[0]='firstelement' string(15) "myIterator::key" // 현재 요소의 키를 반환합니다. $this->position = 1 int(1) //var_dump($key) 문자열(12) "두 번째 요소" //var_dump($value) string(16) "myIterator::next" //다음 요소로 앞으로 이동++$this->position=2 string(17) "myIterator::valid" //현재 요소 $this->array[2]가 유효한지 확인하고 유효한 경우 실행을 계속합니다. string(19) "myIterator::current" //이전 단계를 반복합니다. string(15) "myIterator::key" //이전 단계를 반복합니다. int(2) //이전 단계를 반복합니다. string(11) "lastelement" //이전 단계를 반복합니다. string(16) "myIterator::next" //다음 요소로 앞으로 이동++$this->position=3 string(17) "myIterator::valid" //현재 요소 $this->array[3]가 유효한지 확인하고 유효하지 않으면 순회를 종료합니다.
위 내용은 PHP 반복자의 작동 원리에 대한 분석입니다. 모든 사람에게 도움이 되기를 바랍니다.