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

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

作成日: 更新日:

基本的な使い方

isExecutableメソッドは、ファイルまたはディレクトリが実行可能かどうかを判断するメソッドです。このメソッドは、PHPの標準クラスであるDirectoryIteratorに属しており、ファイルシステムを反復処理する際に、現在扱っている要素の実行権限をチェックするために用いられます。

具体的には、isExecutableメソッドは、対象のファイルやディレクトリに対して現在のシステムユーザーが実行権限を持っているかを評価します。これは、OSのファイルシステムが提供するパーミッション情報(例えばUnix/Linuxシステムにおける実行ビット)に基づいて判断されます。

このメソッドは引数を必要とせず、真偽値(bool)を返します。対象が実行可能であればtrueを、そうでなければfalseを返します。アプリケーションが外部プログラムの実行前にそのプログラムに実行権限があるかを確認したり、特定のWebスクリプトが実行可能状態にあるかを検証したりする際に非常に有用です。これにより、権限エラーによる処理の中断を防ぎ、安定したアプリケーション運用に貢献します。

構文(syntax)

1<?php
2// 現在のディレクトリのイテレータを作成します。
3$iterator = new DirectoryIterator('.');
4
5// 現在のイテレータが指す要素に対して isExecutable() メソッドを呼び出します。
6// これは、その要素(ファイルやディレクトリ)が実行可能であるかどうかを返します。
7// 結果は真偽値(true または false)です。
8
9// 例として、特定のファイルが実行可能かチェックするコード
10// (実際にはループ内で複数のファイルをチェックすることが多いです)
11$found = false;
12foreach ($iterator as $fileInfo) {
13    // 例えば、カレントディレクトリのPHPスクリプト自身が実行可能かチェック
14    if ($fileInfo->getFilename() === basename(__FILE__)) {
15        // isExecutable() メソッドの構文
16        if ($fileInfo->isExecutable()) {
17            echo "ファイル '{$fileInfo->getFilename()}' は実行可能です。\n";
18        } else {
19            echo "ファイル '{$fileInfo->getFilename()}' は実行可能ではありません。\n";
20        }
21        $found = true;
22        break;
23    }
24}
25
26if (!$found) {
27    echo "このスクリプトファイルはDirectoryIteratorで見つかりませんでした。\n";
28}
29?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

bool

このメソッドは、現在のディレクトリ要素(ファイルまたはディレクトリ)が実行可能である場合に true を返し、そうでない場合に false を返します。

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