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

作成日: 更新日:

get_include_path関数は、PHPがプログラム内で外部ファイルを読み込む際に検索するディレクトリのリスト、通称「インクルードパス」の現在の設定値を取得する関数です。この関数は、特にrequire()include()fopen()といったファイル操作を行う関数を使用する際に、PHPがどの場所からファイルを探そうとしているのかを確認したい場合に役立ちます。例えば、意図したファイルが読み込まれない、または「ファイルが見つかりません」といったエラーが発生した場合に、現在のインクルードパスを確認することで、設定の誤りや不足しているパスを発見し、問題解決の糸口とすることができます。

インクルードパスは、PHPの設定ファイルであるphp.iniの中でinclude_pathというディレクティブとして設定されることが一般的ですが、プログラムの実行中にset_include_path()関数を使って動的に変更することも可能です。本関数を実行すると、現在の有効なインクルードパスの文字列がそのまま返されます。複数のパスが設定されている場合は、お使いのオペレーティングシステムに応じた区切り文字、具体的にはWindows環境ではセミコロン(;)、UNIX系環境ではコロン(:)で区切られた形式で文字列として提供されます。これにより、ファイル探索の挙動を正確に把握し、PHPアプリケーションにおけるファイル管理を適切に行うことができます。

基本的な使い方

構文(syntax)

$current_include_path = get_include_path();

引数(parameters)

引数なし

引数はありません

戻り値(return)

string|false

PHPがインクルードパスとして現在設定されているパスの文字列、または失敗した場合は false を返します。

サンプルコード

PHP get_include_path()でインクルードパスを取得する

<?php

/**
 * 現在のPHPインクルードパスを取得し、表示するサンプルコードです。
 * インクルードパスは、PHPが require, include, require_once, include_once
 * などの関数でファイルを検索するディレクトリのリストです。
 *
 * @return void
 */
function displayCurrentIncludePath(): void
{
    // get_include_path() を呼び出し、現在のインクルードパスを取得します。
    // この関数は引数を取らず、現在の設定値を string または false で返します。
    $includePath = get_include_path();

    // 戻り値が false でないかを確認します。
    // get_include_path() は、設定の取得に失敗した場合に false を返すことがあります。
    if ($includePath !== false) {
        echo "現在の PHP インクルードパス: " . $includePath . PHP_EOL;

        // PATH_SEPARATOR 定数を使って、OSごとのパスの区切り文字を表示します。
        // Unix系OSでは通常コロン (:)、Windows系OSではセミコロン (;) です。
        echo "複数のパスは '" . PATH_SEPARATOR . "' で区切られています。" . PHP_EOL;
    } else {
        echo "PHP インクルードパスの取得に失敗しました。" . PHP_EOL;
    }
}

// 上記で定義した関数を実行します。
displayCurrentIncludePath();

PHPのget_include_path関数は、PHPがrequireincluderequire_onceinclude_onceといった命令を使ってファイルを読み込む際に、どこからファイルを探すのかを指定する「インクルードパス」を取得するために利用されます。インクルードパスは、PHPがファイルを検索するディレクトリのリストです。

この関数は引数を取らずに呼び出します。戻り値としては、現在のインクルードパスが文字列として返されるか、あるいはパスの取得に失敗した場合にはfalseが返されます。そのため、サンプルコードのように戻り値がfalseでないかを必ず確認し、適切な処理を行うことが重要です。

取得したインクルードパスには、複数のディレクトリが含まれることがあり、それらはOSに応じた特定の区切り文字で連結されています。例えば、Unix系OSではコロン(:)、Windows系OSではセミコロン(;)が使われます。この区切り文字はPHPのPATH_SEPARATOR定数で確認できます。

get_include_path関数を使用することで、現在PHPがどのディレクトリをファイルの検索対象としているかをプログラムから確認でき、ファイルが見つからない際の原因特定や、実行環境に応じたパスの調整に役立てることができます。

get_include_path()関数は、PHPがrequireincludeなどの関数で外部ファイルを読み込む際に探索するディレクトリのパスを取得します。この関数は引数を取らず、現在の設定値を文字列で返しますが、設定の取得に失敗した場合はfalseを返します。そのため、サンプルコードのように戻り値がfalseでないか必ず確認し、エラーハンドリングを行うようにしてください。これは安全なプログラミングの基本です。

取得されるパスが複数のディレクトリを含む場合、それらはOSに応じた区切り文字で連結されています。その区切り文字はPATH_SEPARATOR定数で取得でき、Windowsではセミコロン(;)、Unix系ではコロン(:)が一般的です。この定数を知っておくと、OSに依存しないパス処理に役立ちます。

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