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