【PHP8.x】dir関数の使い方

作成日: 更新日:

dir関数は、指定されたパスのディレクトリをオープンし、そのディレクトリ内のエントリを操作するためのオブジェクトを返す関数です。この関数は、ディレクトリの読み取り、巻き戻し、およびクローズといった一連の操作を、オブジェクト指向的な方法で実行することを可能にします。

引数には、オープンしたいディレクトリのパスを文字列で渡します。正常にディレクトリがオープンできた場合、dir関数はDirectoryクラスのインスタンスを返します。このDirectoryオブジェクトは、ディレクトリの内容を順番に読み取るためのread()メソッド、ディレクトリポインタを先頭に戻すためのrewind()メソッド、そしてオープンしたディレクトリハンドルを閉じるためのclose()メソッドを持っています。

例えば、ディレクトリ内のファイルやサブディレクトリの名前を一つずつ取得したい場合に、read()メソッドをループ内で繰り返し呼び出すことで、効率的に処理を進めることができます。全ての読み取りが完了したら、close()メソッドを呼び出してリソースを解放することが推奨されます。

もし指定されたディレクトリが存在しない場合や、読み取り権限がないなどの理由でオープンに失敗した場合、dir関数はfalseを返します。そのため、この関数の戻り値は必ず確認し、エラーハンドリングを行うことが重要です。PHP 8では、より明確な型情報と共に、これらの操作が提供されており、ディレクトリ操作を簡潔かつ安全に行うための強力なツールとなります。

基本的な使い方

構文(syntax)

<?php
function dir(string $path): array
{
    return scandir($path);
}

$directoryContents = dir('/var/www/html');
?>

引数(parameters)

string $directory, ?resource $context = null

  • string $directory: ディレクトリのパスを指定する文字列
  • ?resource $context: ストリームコンテキストを指定するリソース (省略可能)

戻り値(return)

Directory|false

指定されたディレクトリを開いた Directory オブジェクト、またはエラーが発生した場合は false を返します。

【PHP8.x】dir関数の使い方 | いっしー@Webエンジニア