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

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

作成日: 更新日:

基本的な使い方

『keyメソッドは、IteratorIteratorオブジェクトが内部でラップしているイテレータの、現在の要素のキーを取得するメソッドです。IteratorIteratorクラスは、既存のイテレータを内包し、そのイテレータの機能を拡張したりフィルタリングしたりするために使用されます。このkeyメソッドは、反復処理中に現在のポインタが指している要素のキーを返します。これは、foreachループにおける $key => $value$key に相当する値を取得する操作と同じです。例えば、連想配列を元にしたイテレータを処理している場合、keyメソッドは現在の要素の文字列キーを返します。一方、通常の配列であれば、0から始まる整数インデックスがキーとして返されます。値そのものを取得する current メソッドと対になっており、この2つのメソッドを組み合わせることで、現在の要素のキーと値を両方取得できます。next メソッドで次の要素に移動した後、再び key メソッドを呼び出すことで、移動後の要素のキーを取得できます。このように、イテレータの状態を正確に把握し、反復処理を制御するために不可欠なメソッドです。

構文(syntax)

1<?php
2
3// 連想配列からArrayIteratorオブジェクトを作成します。
4$arrayIterator = new ArrayIterator([
5    'first' => 'Apple',
6    'second' => 'Banana',
7    'third' => 'Cherry'
8]);
9
10// ArrayIteratorをラップするIteratorIteratorオブジェクトを作成します。
11$iterator = new IteratorIterator($arrayIterator);
12
13// イテレータをループで処理します。
14foreach ($iterator as $value) {
15    // key()メソッドで現在の要素のキーを取得し、出力します。
16    $currentKey = $iterator->key();
17    echo $currentKey . PHP_EOL;
18}
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

現在のイテレータが指しているキーを返します。