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

ネストされた PHP インクルードで相対インクルード パスはどのように機能しますか?

Barbara Streisand
リリース: 2024-11-30 22:38:12
オリジナル
586 人が閲覧しました

How Do Relative Include Paths Work in Nested PHP Includes?

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

PHP では、複数のネストされたインクルードを処理するときに、相対インクルード パスが混乱を招く可能性があります。インクルードされるファイルへの正しいパスを決定するには、それらを管理するスコープ ルールを理解することが不可欠です。

PHP スクリプトを実行すると、現在の作業ディレクトリがスクリプトが配置されているディレクトリになります。これは、include ステートメントで指定された相対パスを解決するためのベース パスとして機能します。ただし、ネストされたインクルードを考慮する場合は区別する必要があります。

メイン スクリプトに関連

ファイル A.PHP がファイル B.PHP をインクルードし、さらにファイル B.PHP がインクルードされる場合ファイル C.PHP の場合、C.PHP への相対パスは、B.PHP ではなく A.PHP の場所に基づいて決定されます。これは、 include() が指定されたファイルの内容を現在実行中のスクリプトに挿入するだけであるためです。

例:

// A.php is located at /var/www/html/
<?php include 'B.php'; ?>

// B.php is located at /var/www/html/includes/
<?php include 'C.php'; ?>

// C.php is located at /var/www/html/utils/
ログイン後にコピー

このシナリオでは、相対パスC.PHP は /var/www/html/utils/C.php ではなく、 /var/www/html/includes/utils/C.php.

相対パスに FILE を使用する

インクルードを作成するファイルの場所に基づく相対パスでは、__FILE__ 定数を利用できます。この定数は、現在の作業ディレクトリに関係なく、コードの現在の行が存在する実際のファイルを常に指します。

// Using __FILE__ in B.php
<?php include(dirname(__FILE__)."/C.PHP"); ?>
ログイン後にコピー

この場合、C.PHP への相対パスは、B を含むディレクトリからのものになります。 .PHP.

PHP のインクルード パスは常にメイン スクリプトからの相対パスであることに注意してください。 __FILE__ を活用するか、インクルード パスの階層的な性質を理解することで、複雑な PHP アプリケーションで相対的な include ステートメントを自信を持って処理できます。

以上がネストされた PHP インクルードで相対インクルード パスはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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