Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

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

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

作成日: 更新日:

基本的な使い方

KEY_AS_PATHNAME定数は、PHPのGlobIteratorクラスがファイルシステム内の項目(ファイルやディレクトリ)を反復処理する際に、各項目の「キー」がどのように提供されるかを指定するための定数です。GlobIteratorは、glob()関数と同様に、特定のパターンに一致するパスを探索し、その結果をイテレータとして扱うためのクラスです。

この定数をGlobIteratorオブジェクトの動作フラグとして設定すると、foreachループなどを用いてファイルやディレクトリを順に処理する際に、各項目のキーとしてその完全なパス名が使用されるようになります。具体的には、例えば/home/user/documents/report.txtというファイルが見つかった場合、foreach ($iterator as $key => $value)としたときの$key変数には/home/user/documents/report.txtという文字列が代入されます。

この機能は、ファイルやディレクトリの完全なパス名自体を、反復処理における識別子や参照情報として直接利用したい場合に非常に役立ちます。例えば、パス名に基づいてファイルを特定したり、パス名の一部を抽出して処理を行ったりする際に、余分な加工なしにキーから直接パス名を取得できます。この定数は、GlobIteratorクラスのコンストラクタの第二引数、またはsetFlags()メソッドに渡すことで動作を制御します。

構文(syntax)

1<?php
2
3$iterator = new GlobIterator('./*.txt', GlobIterator::KEY_AS_PATHNAME);
4
5foreach ($iterator as $pathname_key => $file_object) {
6    // $pathname_key にはファイルパス名が格納される
7    // $file_object には SplFileInfo オブジェクトが格納される
8    echo "Key (Pathname): " . $pathname_key . "\n";
9}
10
11?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

GlobIterator::KEY_AS_PATHNAME は、イテレーターがファイルパスをキーとして返すことを示す整数定数です。