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

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

作成日: 更新日:

基本的な使い方

『getIteratorIndexメソッドは、AppendIteratorオブジェクトが現在どの内部イテレータを指しているか、そのインデックス(0から始まる位置番号)を取得するメソッドです。AppendIteratorクラスは、複数のイテレータを一つに連結し、あたかも単一のイテレータであるかのように順次処理するために使用されます。このメソッドは、連結された複数のイテレータのうち、現在どのイテレータがアクティブになっているかを特定するのに役立ちます。例えば、2つのArrayIteratorオブジェクトをAppendIteratorに追加した場合、ループ処理が最初のArrayIteratorの要素を走査している間、このメソッドは0を返します。そして、最初のイテレータの処理が完了し、自動的に2番目のArrayIteratorに処理が移ると、このメソッドは1を返すようになります。このように、複数の異なるデータソースを順番に処理する際に、現在の処理段階やデータソースの種類をプログラム的に判断したい場合に非常に便利です。戻り値は、現在の内部イテレータのインデックスを表す整数となります。

構文(syntax)

1<?php
2
3$arrayIterator1 = new ArrayIterator(['a', 'b', 'c']);
4$arrayIterator2 = new ArrayIterator(['d', 'e']);
5
6$appendIterator = new AppendIterator();
7$appendIterator->append($arrayIterator1);
8$appendIterator->append($arrayIterator2);
9
10foreach ($appendIterator as $value) {
11    // 現在アクティブな内部イテレータのインデックスを取得します
12    $currentIndex = $appendIterator->getIteratorIndex();
13    echo "Iterator Index: {$currentIndex}, Value: {$value}" . PHP_EOL;
14}
15
16?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|null

AppendIterator::getIteratorIndex は、現在処理中のイテレータのインデックスを整数で返します。イテレータがまだ開始されていない場合や、AppendIterator が空の場合は null を返します。

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