
RecursiveIteratorIterator는 IteratorAggregate 인터페이스를 구현한 객체를 필요로 합니다.
1. IteratorAggregate 인터페이스를 구현한 객체를 생성하는 방법은 다음과 같습니다.
#hostingforum.kr
php
class DirectoryIterator implements IteratorAggregate {
private $directory;
public function __construct($directory) {
$this->directory = $directory;
}
public function getIterator() {
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->directory));
return $iterator;
}
}
2. 위의 DirectoryIterator 클래스를 사용하여 디렉토리 트리나 파일 시스템과 같은 반복 가능한 객체를 반복하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$directory = new DirectoryIterator('/path/to/directory');
$iterator = $directory->getIterator();
foreach ($iterator as $file) {
echo $file->getPathname() . "n";
}
3. RecursiveIteratorIterator의 setMaxDepth 메소드를 사용하여 반복 깊이를 지정하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$directory = new DirectoryIterator('/path/to/directory');
$iterator = new RecursiveIteratorIterator($directory, RecursiveIteratorIterator::SELF_FIRST);
$iterator->setMaxDepth(2);
foreach ($iterator as $file) {
echo $file->getPathname() . "n";
}
위의 예제에서, setMaxDepth 메소드는 디렉토리 트리의 최대 반복 깊이를 2로 지정합니다.
2025-08-06 04:48