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

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

作成日: 更新日:

基本的な使い方

getInnerIteratorメソッドは、AppendIteratorオブジェクトが現在処理している内部イテレータを取得するために実行するメソッドです。AppendIteratorクラスは、複数の異なるイテレータを一つに連結し、あたかも単一のイテレータであるかのように連続して処理する機能を提供します。例えば、foreach文でAppendIteratorをループ処理すると、追加された順に内部のイテレータが次々と処理されます。このgetInnerIteratorメソッドをループの実行中に呼び出すと、その時点でアクティブになっている、つまり現在要素を提供している内部イテレータのオブジェクトそのものが返されます。この機能を利用することで、ループ処理中の要素が、連結された複数のイテレータのうちどれに由来するものなのかを特定したり、その内部イテレータが独自に持つ特定のメソッドにアクセスしたりすることが可能になります。処理が進み、次の内部イテレータに移ると、このメソッドが返すオブジェクトも新しい内部イテレータへと自動的に切り替わります。なお、アクティブな内部イテレータが存在しない状況、例えば反復処理がまだ開始されていない場合などでは、このメソッドはnullを返します。

構文(syntax)

1<?php
2$arrayIterator1 = new ArrayIterator(['a', 'b']);
3$arrayIterator2 = new ArrayIterator(['c', 'd']);
4
5$appendIterator = new AppendIterator();
6$appendIterator->append($arrayIterator1);
7$appendIterator->append($arrayIterator2);
8
9$appendIterator->rewind();
10
11$innerIterator = $appendIterator->getInnerIterator();
12
13var_dump($innerIterator);
14?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

?Iterator

AppendIterator::getInnerIterator() は、AppendIterator が内部で保持している、現在処理中の Iterator オブジェクトを返します。もし AppendIterator が空の場合は NULL を返します。