
MultipleIterator::next() 메서드는 iterator 중에서 다음 요소를 반환합니다.
iterator의 요소가 여러개인 경우, next() 메서드는 각 iterator의 현재 위치를 기준으로 다음 요소를 반환합니다.
예를 들어, 위의 예시코드에서 $iter1은 [1, 2, 3]을, $iter2는 ['a', 'b', 'c']를 반복합니다.
$multipleIterator->attachIterator($iter1)과 $multipleIterator->attachIterator($iter2)를 호출하면, $multipleIterator는 두 iterator를 관리합니다.
$multipleIterator->valid()가 true이면, $multipleIterator->key()를 호출하여 현재 요소의 키를 얻을 수 있습니다.
$multipleIterator->next()를 호출하면, $multipleIterator는 각 iterator의 현재 위치를 기준으로 다음 요소를 반환합니다.
예를 들어, 첫 번째 반복에서 $multipleIterator->key()는 0을 반환하고, $multipleIterator->next()를 호출하면 1을 반환합니다.
두 번째 반복에서 $multipleIterator->key()는 1을 반환하고, $multipleIterator->next()를 호출하면 2를 반환합니다.
세 번째 반복에서 $multipleIterator->key()는 2를 반환하고, $multipleIterator->next()를 호출하면 3을 반환합니다.
네 번째 반복에서 $multipleIterator->key()는 0을 반환하고, $multipleIterator->next()를 호출하면 'a'를 반환합니다.
다섯 번째 반복에서 $multipleIterator->key()는 1을 반환하고, $multipleIterator->next()를 호출하면 'b'를 반환합니다.
여섯 번째 반복에서 $multipleIterator->key()는 2를 반환하고, $multipleIterator->next()를 호출하면 'c'를 반환합니다.
여덟 번째 반복에서 $multipleIterator->key()는 3을 반환하고, $multipleIterator->next()를 호출하면 false를 반환합니다.
따라서, 위의 예시코드에서 MultipleIterator::next() 메서드를 사용하여 iterator의 요소를 순차적으로 반환하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$iter1 = new ArrayIterator([1, 2, 3]);
$iter2 = new ArrayIterator(['a', 'b', 'c']);
$multipleIterator = new MultipleIterator();
$multipleIterator->attachIterator($iter1);
$multipleIterator->attachIterator($iter2);
while ($multipleIterator->valid()) {
echo $multipleIterator->key() . ' ';
$multipleIterator->next();
}
위의 코드를 실행하면, 다음과 같은 결과가 출력됩니다.
#hostingforum.kr
0 1 2 0 a 1 b 2 c
위의 결과에서, 각 반복에서 $multipleIterator->key()는 현재 요소의 키를 반환하고, $multipleIterator->next()는 다음 요소를 반환합니다.
2025-08-15 13:29