【PHP8.x】getInnerIteratorメソッドの使い方

getInnerIteratorメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getInnerIteratorメソッドは、RecursiveCachingIteratorオブジェクトが内部で保持している元のイテレータを取得するメソッドです。RecursiveCachingIteratorクラスは、他のイテレータを包み込むように動作し、キャッシュ機能を追加するデコレータとして機能します。このメソッドは、その包み込んでいる外側のRecursiveCachingIterator自身ではなく、内部に存在する「元のイテレータ」のインスタンスそのものを返します。これにより、開発者はキャッシュ機能を介さずに、基底となるイテレータが持つ本来の機能やプロパティに直接アクセスすることが可能になります。例えば、元のイテレータが持つ特定のメソッドを呼び出したい場合や、元のイテレータの型を判定したい場合などに使用されます。このメソッドに引数はなく、返り値としてRecursiveIteratorインターフェースを実装したオブジェクトが返されます。

構文(syntax)

1<?php
2
3// 元となる再帰的なイテレータを作成します
4$innerIterator = new RecursiveArrayIterator(['a', 'b', ['c', 'd']]);
5
6// RecursiveCachingIteratorのインスタンスを生成します
7$iterator = new RecursiveCachingIterator($innerIterator);
8
9// getInnerIterator()メソッドを呼び出し、内部のイテレータを取得します
10$retrievedIterator = $iterator->getInnerIterator();
11
12// 取得したイテレータが元のイテレータと同一か確認します
13var_dump($retrievedIterator === $innerIterator); // bool(true)
14
15?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

RecursiveIterator

RecursiveCachingIteratorの内部で使用されているRecursiveIteratorインスタンスを返します。

【PHP8.x】getInnerIteratorメソッドの使い方 | いっしー@Webエンジニア