PHP を使用する場合、インクルード パスは外部ファイルをコードに組み込む際に重要な役割を果たします。しかし、インクルードされるファイルの相対的な場所を決定するのは、難しい場合があります。
次のシナリオを考えてみましょう。B.php をインクルードする PHP スクリプト A.php があり、さらに B.php には C.php がインクルードされます。疑問が生じます: C.php への相対パスは B.php または A.php の場所に基づくべきですか?
答え:
一部のプログラミング言語とは異なります, PHP のインクルード パスは常に メイン スクリプトを基準 であり、この場合は A.php です。これは、 include() 関数が基本的に、インクルードされたファイルのコードを現在のスクリプトに埋め込むためです。
理由:
include() の背後にあるメカニズムは、マージすることです。別のファイルの内容を現在のスクリプトに追加します。したがって、途中で他のどのファイルが含まれるかに関係なく、メイン スクリプトのコンテキスト内でのみ動作します。
影響:
これは、ファイルがinclude() の呼び出し元はパス解決とは関係ありません。現在の作業ディレクトリも無関係です。パスはメイン スクリプトの場所によってのみ決定されます。
例外:
特に、インクルードされるファイルに相対的なパスを作成したい場合は、 __FILE__ 定数。この定数は常に現在のファイルのリテラルの場所を指し、インクルードされるファイルへのパスを動的に計算できます。
例:
C.php をインクルードするにはB.php に対して、次を使用できます:
include(dirname(__FILE__)."/C.PHP");
以上がPHP は、ネストされたファイル インクルード内の相対インクルード パスをどのように解決しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。