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

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

作成日: 更新日:

基本的な使い方

acceptメソッドは、RecursiveRegexIteratorが現在指している要素が有効かどうかを判定するために、内部的に呼び出されるメソッドです。このメソッドは、要素がコンストラクタで指定された正規表現にマッチするかを評価し、その結果を真偽値で返します。具体的な判定ロジックは、現在の要素が子を持つかどうかで異なります。もし現在の要素が子を持つ場合、つまりRecursiveIterator::hasChildren()がtrueを返す場合、このメソッドは正規表現による評価を行わず、常にtrueを返します。これにより、ディレクトリなどのコンテナ要素自体がフィルタリングで除外されることなく、その内部を再帰的に探索できます。一方、現在の要素が子を持たない場合、コンストラクタで設定された正規表現パターンを用いて、要素の値に対してpreg_match()による照合が行われます。マッチした場合はtrueを、マッチしなかった場合はfalseを返します。このメソッドがtrueを返した要素のみが、イテレーションの結果として有効な値とみなされます。

構文(syntax)

1<?php
2
3$array = ['apple.php', 'banana.txt', 'config.php'];
4$arrayIterator = new ArrayIterator($array);
5$regexIterator = new RecursiveRegexIterator($arrayIterator, '/\.php$/');
6
7$regexIterator->rewind();
8// 'apple.php' matches the pattern, so accept() returns true.
9var_dump($regexIterator->accept());
10
11$regexIterator->next();
12// 'banana.txt' does not match, so accept() returns false.
13var_dump($regexIterator->accept());
14
15$regexIterator->next();
16// 'config.php' matches, so accept() returns true.
17var_dump($regexIterator->accept());
18
19?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

RecursiveRegexIterator::accept メソッドは、現在のイテレータの位置にある要素が正規表現にマッチするかどうかを示す真偽値(bool)を返します。マッチする場合は true を、マッチしない場合は false を返します。

【PHP8.x】acceptメソッドの使い方 | いっしー@Webエンジニア