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

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

作成日: 更新日:

基本的な使い方

getInnerIteratorメソッドは、FilterIteratorオブジェクトが内部で保持している元のイテレータ(内部イテレータ)を取得するために実行するメソッドです。FilterIteratorクラスは、既存のイテレータを元にして、特定の条件を満たす要素だけを抽出するフィルタとして機能します。このとき、フィルタリングの対象となる元のイテレータが内部に保持されており、本メソッドはその元のイテレータオブジェクト自体を返します。これにより、フィルタリングが適用される前の、すべての要素を含んだデータソースにアクセスすることが可能になります。例えば、フィルタリング後の結果だけでなく、フィルタリングによって除外された要素も含めた全体の要素数を取得したい場合や、元のイテレータが持つ固有のメソッドを呼び出して操作したい場合などに利用されます。戻り値は、FilterIteratorのコンストラクタに渡された、Iteratorインターフェースを実装したオブジェクトとなります。

構文(syntax)

1$filterIterator = new class(new ArrayIterator(['a', 'b', 'c'])) extends FilterIterator {
2    public function accept(): bool {
3        return true;
4    }
5};
6
7// 内部に保持している元のイテレータを取得します
8$innerIterator = $filterIterator->getInnerIterator();

引数(parameters)

引数なし

引数はありません

戻り値(return)

Iterator

FilterIteratorクラスで、このイテレータがラップしている元のイテレータを返します。