
RecursiveDirectoryIterator::next() 메서드를 사용하여 디렉토리 내의 파일을 읽을 때, Iterator가 끝나면 next() 메서드를 다시 호출하면 디렉토리 내의 첫 번째 파일로 포인터가 이동됩니다.
이러한 동작은 Iterator의 디자인 원칙에 따라서 발생합니다. Iterator는 반복 가능한 객체를 제공하며, Iterator의 끝까지 반복하면 Iterator의 끝에 도달한 것을 알리는 종료 상태를 반환합니다.
next() 메서드를 다시 호출하면 Iterator는 이전 상태로 돌아가지 않고, 새로운 반복을 시작합니다. 따라서 디렉토리 내의 첫 번째 파일로 포인터가 이동됩니다.
이러한 동작은 Iterator의 재사용성을 제공하며, 디렉토리 내의 파일을 읽을 때, Iterator를 다시 사용할 수 있습니다.
예를 들어, 다음 코드를 참고하세요.
#hostingforum.kr
php
$iterator = new RecursiveDirectoryIterator('경로');
foreach ($iterator as $file) {
// 파일을 처리합니다.
}
// Iterator를 다시 사용합니다.
$iterator->rewind(); // Iterator의 포인터를 처음으로 이동합니다.
while ($file = $iterator->next()) {
// 파일을 처리합니다.
}
위 코드에서, Iterator를 다시 사용할 때, rewind() 메서드를 사용하여 Iterator의 포인터를 처음으로 이동한 후, next() 메서드를 사용하여 디렉토리 내의 파일을 읽을 수 있습니다.
2025-08-04 01:36