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

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

作成日: 更新日:

基本的な使い方

『getInnerIteratorメソッドは、フィルタリングの対象となっている内部のイテレータオブジェクトを取得する処理を実行するメソッドです。RecursiveFilterIteratorクラスは、コンストラクタで指定された別のRecursiveIteratorオブジェクトを内包し、その要素をフィルタリングする機能を提供します。このgetInnerIteratorメソッドを呼び出すと、その内包されている、つまりフィルタリングされる前の元のイテレータオブジェクトそのものが返されます。このメソッドは、より基本的なIteratorIteratorクラスから継承されたものであり、フィルタ適用後のイテレータから、大元となるデータソースに再度アクセスしたい場合に役立ちます。例えば、フィルタリング処理とは別に、元のイテレータが持つ独自のメソッドを呼び出したり、内部状態を確認したりする必要がある際に便利です。これにより、フィルタ機能と元のデータ操作を分離しつつ、必要に応じて両者にアクセスすることが可能になります。』

構文(syntax)

1<?php
2
3$arrayIterator = new RecursiveArrayIterator(['value1', ['value2']]);
4
5$filterIterator = new class($arrayIterator) extends RecursiveFilterIterator {
6    public function accept(): bool
7    {
8        return true;
9    }
10};
11
12$originalIterator = $filterIterator->getInnerIterator();

引数(parameters)

引数なし

引数はありません

戻り値(return)

RecursiveIterator

RecursiveIteratorインターフェースを実装したイテレータです。これは、RecursiveFilterIteratorがフィルタリングを行うために内部で使用している元のイテレータを表します。

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