라이브러리

[PHP] RecursiveFilterIterator::hasChildren - 내부 반복자의 현재 요소에 자식이 있는지 확인합니다.




RecursiveFilterIterator::hasChildren

PHP의 RecursiveFilterIterator는 RecursiveDirectoryIterator를 상속받은 클래스로, 하위 디렉터리까지 반복적으로 디렉터리나 파일을 반복할 수 있습니다. RecursiveFilterIterator는 RecursiveDirectoryIterator를 상속받아, 디렉터리나 파일을 필터링하는 기능을 추가한 클래스입니다.

RecursiveFilterIterator::hasChildren 메소드는, 현재 디렉터리가 하위 디렉터리를 가지고 있는지 여부를 확인하는 메소드입니다. 이 메소드는 디렉터리만 반영하며, 파일은 반영하지 않습니다.

예제


#hostingforum.kr
php

// RecursiveFilterIterator::hasChildren 예제

$iterator = new RecursiveIteratorIterator(

    new RecursiveFilterIterator(

        new RecursiveDirectoryIterator('./example'),

        new PrefixMatcher('.*.php$')

    ),

    RecursiveIteratorIterator::SELF_FIRST

);



foreach ($iterator as $file) {

    if ($file->isDir()) {

        echo "디렉터리: " . $file->getPathname() . "
";

        if ($iterator->hasChildren()) {

            echo "하위 디렉터리가 있습니다.
";

        } else {

            echo "하위 디렉터리가 없습니다.
";

        }

    } else {

        echo "파일: " . $file->getPathname() . "
";

    }

}



예제 설명


* `RecursiveFilterIterator`를 사용하여, `./example` 디렉터리와 하위 디렉터리에서 `.php` 확장자를 가진 파일만 반영합니다.
* `RecursiveIteratorIterator`를 사용하여, 디렉터리와 파일을 반복합니다.
* `RecursiveIteratorIterator::SELF_FIRST` 옵션을 사용하여, 디렉터리와 파일을 반복할 때, 디렉터리와 파일을 구분합니다.
* `hasChildren` 메소드를 사용하여, 현재 디렉터리가 하위 디렉터리를 가지고 있는지 여부를 확인합니다.

결과


#hostingforum.kr


디렉터리: ./example

하위 디렉터리가 있습니다.

디렉터리: ./example/subdir

하위 디렉터리가 있습니다.

파일: ./example/file1.php

파일: ./example/file2.php



결론


RecursiveFilterIterator::hasChildren 메소드는 현재 디렉터리가 하위 디렉터리를 가지고 있는지 여부를 확인하는 메소드입니다. 이 메소드는 디렉터리만 반영하며, 파일은 반영하지 않습니다. 예제를 통해, 디렉터리와 하위 디렉터리를 반복하고, 하위 디렉터리를 확인하는 방법을 살펴보았습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 295 페이지

검색

게시물 검색