
RecursiveIteratorIterator 클래스의 getInnerIterator 메서드는 내부 반복 가능한 객체를 IteratorAggregate 인터페이스 타입으로 반환하는 이유는 IteratorAggregate 인터페이스를 구현한 객체가 반복 가능한 객체를 반환하는 메서드를 제공하기 때문입니다.
IteratorAggregate 인터페이스는 getIterator 메서드를 정의하는데, 이 메서드는 반복 가능한 객체를 반환합니다. RecursiveIteratorIterator 클래스의 getInnerIterator 메서드는 이 getIterator 메서드를 호출하여 내부 반복 가능한 객체를 반환합니다.
따라서 내부 반복 가능한 객체는 반복 가능한 객체가 아닌 IteratorAggregate 인터페이스 타입의 객체로 반환되는 것은 IteratorAggregate 인터페이스를 구현한 객체가 반복 가능한 객체를 반환하는 메서드를 제공하기 때문입니다.
예를 들어, RecursiveIteratorIterator 클래스의 getInnerIterator 메서드를 호출하여 내부 반복 가능한 객체를 얻을 수 있습니다.
#hostingforum.kr
php
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/directory'));
$innerIterator = $iterator->getInnerIterator();
// $innerIterator는 IteratorAggregate 인터페이스 타입의 객체로 반환됩니다.
// 그러나 $innerIterator->getIterator() 메서드를 호출하여 반복 가능한 객체를 얻을 수 있습니다.
$innerIterator->getIterator();
이 예제에서 $innerIterator는 IteratorAggregate 인터페이스 타입의 객체로 반환됩니다. 그러나 $innerIterator->getIterator() 메서드를 호출하여 반복 가능한 객체를 얻을 수 있습니다.
2025-05-03 08:02