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

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

作成日: 更新日:

基本的な使い方

『getInnerIteratorメソッドは、NoRewindIteratorオブジェクトが内部で保持している、元のイテレータオブジェクトを取得するために実行するメソッドです。NoRewindIteratorクラスは、既存のイテレータをラップ(包み込む)することで、そのイテレータの先頭へ巻き戻す処理(rewind)を無効化する機能を提供します。これは、一度しか走査できないデータストリームなどを安全に扱う際に利用されます。このgetInnerIteratorメソッドを呼び出すと、NoRewindIteratorによってラップされている、加工前のオリジナルのイテレータインスタンスが返されます。これにより、開発者は巻き戻しが禁止された状態から一時的に離れて、元のイテレータが持つ独自のメソッドを呼び出したり、その状態を直接確認したりすることが可能になります。つまり、NoRewindIteratorを介した操作だけでなく、ラップ対象となったイテレータそのものにアクセスする必要が生じた際に、このメソッドが使用されます。

構文(syntax)

1<?php
2
3$arrayIterator = new ArrayIterator(['a', 'b', 'c']);
4$noRewindIterator = new NoRewindIterator($arrayIterator);
5
6$innerIterator = $noRewindIterator->getInnerIterator();
7
8?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

Iterator

NoRewindIterator::getInnerIterator メソッドは、NoRewindIterator が内部で使用しているイテレータ(Iterator)を返します。これにより、元のイテレータに直接アクセスできます。