【PHP8.x】USE_KEY定数の使い方

USE_KEY定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

USE_KEY定数は、RegexIteratorクラスが正規表現のマッチングを、イテレータのキーに対して実行するように指示するための定数です。RegexIteratorは、配列や他のイテレータオブジェクトを内包し、その要素を正規表現パターンに基づいてフィルタリングする機能を提供します。標準の動作では、イテレータが指す各要素の「値」に対して正規表現のマッチングが行われます。しかし、このUSE_KEY定数をコンストラクタの引数である$flagsに指定することで、マッチングの対象を「値」から「キー」へと変更することが可能になります。例えば、キーにファイル名、値にその更新日時を持つような連想配列から、特定の拡張子を持つファイル名(キー)だけを効率的に抽出したい場合に、この定数が役立ちます。このフラグを指定しない場合、更新日時(値)に対して検索が行われるため、キーを基準としたフィルタリングは実現できません。このように、USE_KEY定数は、RegexIteratorの動作モードを制御し、キーに基づいた柔軟なフィルタリングを実現するために使用されます。

構文(syntax)

1<?php
2
3$fruits = new ArrayIterator([
4    'apple' => 'red',
5    'banana' => 'yellow',
6    'apricot' => 'orange',
7    'grape' => 'purple'
8]);
9
10$iterator = new RegexIterator(
11    $fruits,
12    '/^a/',
13    RegexIterator::USE_KEY
14);
15
16foreach ($iterator as $key => $value) {
17    echo $key . ': ' . $value . PHP_EOL;
18}

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

RegexIterator::USE_KEY は、イテレータがキー(数値インデックス)を返すことを示す整数定数です。