【PHP8.x】keyメソッドの使い方
keyメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
keyメソッドは、イテレータが現在指している要素のキーを返すメソッドです。RecursiveCallbackFilterIteratorは、再帰的なデータ構造をコールバック関数によってフィルタリングするためのクラスであり、このkeyメソッドは、そのフィルタリング条件を満たした現在の要素のキーを取得するために使用されます。Iteratorインターフェースで定義されている基本的なメソッドの一つであり、foreachループなどで foreach ($iterator as $key => $value) のようにキーと値のペアを処理する際に、内部的に呼び出されます。このメソッド自体がフィルタリングを行うわけではなく、フィルタリング後のイテレータの現在の位置におけるキーを報告する役割を担います。currentメソッドが現在の要素の値を返すのに対し、keyメソッドはそれに対応するキーを返します。これにより、開発者はフィルタリングされた結果セットの中から、特定の要素が元のデータ構造においてどのキーに対応していたかを知ることができます。返されるキーの型は、元となるイテレータのキーの型に依存し、通常は整数または文字列となります。
構文(syntax)
1<?php 2 3$data = [ 4 'fruit1' => 'apple', 5 'vegetable1' => 'carrot', // This will be filtered out 6 'fruit2' => 'orange', 7]; 8 9$arrayIterator = new RecursiveArrayIterator($data); 10 11// Callback function to filter items. It only accepts items whose key starts with 'fruit'. 12$filterCallback = function ($current, $key, $iterator) { 13 return str_starts_with($key, 'fruit'); 14}; 15 16$filterIterator = new RecursiveCallbackFilterIterator($arrayIterator, $filterCallback); 17 18// Iterate through the filtered items 19foreach ($filterIterator as $value) { 20 // public RecursiveCallbackFilterIterator::key(): mixed 21 // Get the key of the current element. 22 $currentKey = $filterIterator->key(); 23 24 echo $currentKey . PHP_EOL; 25} 26 27?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
mixed
RecursiveCallbackFilterIterator::key() は、現在の要素のキーを返します。