개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.06 04:47

RecursiveIteratorIterator::setMaxDepth 관련 질문

목록
  • 클라우드사제 23시간 전 2025.08.06 04:47 새글
  • 8
    1
제가 현재 RecursiveIteratorIterator에 대해 공부 중인데, setMaxDepth 메소드에 대해 조금 혼란이 있습니다. 이 메소드는 RecursiveIteratorIterator의 최대 반복 깊이를 지정하는 용도로 사용됩니다. 하지만, setMaxDepth 메소드를 사용하기 위해서는 RecursiveIteratorIterator가 IteratorAggregate 인터페이스를 구현한 객체를 반드시 필요로 합니다.

이러한 조건을 만족하는 객체를 생성하는 방법과, RecursiveIteratorIterator를 사용하여 디렉토리 트리나 파일 시스템과 같은 반복 가능한 객체를 반복하는 방법에 대해 알려주세요.

    댓글목록

    profile_image
    나우호스팅  23시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,043건 / 7 페이지

검색

게시물 검색