라이브러리
[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 메소드는 현재 디렉터리가 하위 디렉터리를 가지고 있는지 여부를 확인하는 메소드입니다. 이 메소드는 디렉터리만 반영하며, 파일은 반영하지 않습니다. 예제를 통해, 디렉터리와 하위 디렉터리를 반복하고, 하위 디렉터리를 확인하는 방법을 살펴보았습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.