ホームページ > バックエンド開発 > PHPチュートリアル > PHP は、ネストされたファイル インクルード内の相対インクルード パスをどのように解決しますか?

PHP は、ネストされたファイル インクルード内の相対インクルード パスをどのように解決しますか?

DDD
リリース: 2024-11-29 12:29:13
オリジナル
391 人が閲覧しました

How Does PHP Resolve Relative Include Paths in Nested File Inclusions?

PHP の相対インクルード パスについて理解する

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート