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

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

作成日: 更新日:

基本的な使い方

keyメソッドは、InfiniteIteratorが現在指し示している内部イテレータの要素のキーを取得する処理を実行するメソッドです。InfiniteIteratorは、内部に保持するイテレータの要素を無限に繰り返すという特徴を持ちます。この無限ループの各ステップにおいて、現在どの要素を指しているか、その要素のキーが何であるかを確認するためにこのメソッドが役立ちます。例えば、foreachループでInfiniteIteratorを反復処理する際に、currentメソッドで値を取得すると同時に、keyメソッドでその値に対応するキー(配列のインデックスや連想配列のキーなど)を取得することができます。内部イテレータが末尾に達して先頭に戻ると、keyメソッドが返す値もそれに追随し、再び最初の要素のキーから返し始めます。これにより、無限に続くシーケンスの中でも、各要素が元のデータセットのどこに由来するのかを常に特定することが可能になります。戻り値の型は、内部イテレータが持つキーの型に依存します。

構文(syntax)

1<?php
2
3// 元になる配列でイテレータを作成します
4$arrayIterator = new ArrayIterator(['a', 'b', 'c']);
5
6// 無限イテレータを作成します
7$infiniteIterator = new InfiniteIterator($arrayIterator);
8
9// 5回ループして、現在のキーを取得し表示します
10for ($i = 0; $i < 5; $i++) {
11    // 現在のイテレータのキーを取得します
12    $key = $infiniteIterator->key();
13    var_dump($key);
14
15    // 次の要素へ進みます
16    $infiniteIterator->next();
17}
18
19/*
20出力結果:
21int(0)
22int(1)
23int(2)
24int(0)
25int(1)
26*/

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

現在のキーを返します。InfiniteIteratorは、キーが常に0であるため、このメソッドは常に0を返します。