
RecursiveCachingIterator::hasChildren() 함수는 하위 항목이 캐싱된 경우 캐싱된 결과를 반환하므로, 실제 하위 항목이 있는지 여부를 확인할 때는 캐싱된 결과를 무시하고 원본 데이터를 확인해야 합니다.
원본 데이터를 확인하기 위해서는 RecursiveCachingIterator의 원본 데이터를 반환하는 getInnerIterator() 메서드를 사용하여 원본 데이터의 하위 항목이 있는지 여부를 확인할 수 있습니다.
getInnerIterator()->hasChildren() 메서드를 사용하여 원본 데이터의 하위 항목이 있는지 여부를 확인하면, 캐싱된 결과를 무시하고 원본 데이터를 확인할 수 있습니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$iterator = new RecursiveCachingIterator($directoryIterator);
if ($iterator->hasChildren()) {
// 하위 항목이 캐싱된 경우 캐싱된 결과를 무시하고 원본 데이터를 확인
if ($iterator->getInnerIterator()->hasChildren()) {
// 하위 항목이 실제로 존재합니다.
} else {
// 하위 항목이 실제로 존재하지 않습니다.
}
} else {
// 하위 항목이 없습니다.
}
2025-04-10 14:13