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

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

作成日: 更新日:

基本的な使い方

acceptメソッドは、RegexIteratorの現在の要素が正規表現にマッチするかどうかを判定するメソッドです。このメソッドは、FilterIteratorクラスから継承したもので、RegexIteratorがフィルタリング機能を実現するための中心的な役割を担います。通常、プログラマがこのメソッドを直接呼び出すことはなく、foreachループなどでRegexIteratorオブジェクトを反復処理する際に、各要素に対して内部的に自動で呼び出されます。acceptメソッドは、RegexIteratorのコンストラクタで指定された正規表現パターンと現在の要素の値を比較します。もし要素が正規表現にマッチすればtrueを返し、その要素は有効なものとして扱われます。逆にマッチしなければfalseを返し、その要素はスキップされ、イテレーションの結果には含まれません。このように、acceptメソッドのbool型の戻り値によって、どの要素が反復処理の対象となるかが決定されます。

構文(syntax)

1<?php
2$array = ['test1', 'test2', 'filter_out', 'test3'];
3$arrayIterator = new ArrayIterator($array);
4
5// 'test' で始まる要素をフィルタリングするイテレータを作成します。
6// foreach でループすると、内部的に accept() メソッドが呼び出され、
7// 現在の要素が正規表現にマッチするかどうかを判定します。
8$regexIterator = new RegexIterator($arrayIterator, '/^test/');
9
10foreach ($regexIterator as $key => $value) {
11    // accept() が true を返した要素のみがループの対象となります。
12    echo "$key: $value" . PHP_EOL;
13}

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

現在の要素が正規表現にマッチするかどうかを示す真偽値を返します。マッチする場合は true、マッチしない場合は false を返します。