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

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

作成日: 更新日:

基本的な使い方

getInnerIteratorメソッドは、IteratorIteratorオブジェクトが内部で保持している元のイテレータオブジェクトを取得する処理を実行するメソッドです。IteratorIteratorクラスは、既存のイテレータをラップ(包み込む)し、それ自身もイテレータとして振る舞う機能を提供します。このクラスを利用することで、元のイテレータの基本的な繰り返し処理の動作はそのままに、統一的なインターフェースで扱うことが可能になります。通常はIteratorIteratorオブジェクトを通してループ処理を行いますが、ラップしている元のイテレータオブジェクトが持つ独自のメソッドやプロパティに直接アクセスしたい場合があります。そのような状況でこのgetInnerIteratorメソッドを使用すると、IteratorIteratorのコンストラクタに渡されたイテレータオブジェクトそのものを取得できます。これにより、IteratorIteratorが提供する標準的な機能だけでなく、元のオブジェクト固有の機能も利用できるようになり、より柔軟な処理を実装することが可能になります。

構文(syntax)

1<?php
2
3// 元となるイテレータを作成します
4$arrayIterator = new ArrayIterator(['PHP', 'Python', 'Ruby']);
5
6// ArrayIterator を IteratorIterator でラップします
7$iteratorIterator = new IteratorIterator($arrayIterator);
8
9// ラップされている内部のイテレータ (元の ArrayIterator) を取得します
10$innerIterator = $iteratorIterator->getInnerIterator();
11
12// 取得したイテレータが元のイテレータと同一であることを確認します
13var_dump($innerIterator === $arrayIterator); // bool(true)
14
15?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

Iterator

このメソッドは、IteratorIterator オブジェクトが内部で保持している元のイテレータを返します。