【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)を返します。これにより、元のイテレータに直接アクセスできます。