require_once は奇妙な現象です。ルート ディレクトリにある
ファイルを見てください。 require_once("test/1.php"); 次に 1.php require_once("2.php"); を見てください。例 2.php がルート ディレクトリに存在する場合、プログラムはルート ディレクトリの 2.php
を参照します。 2.php がルート ディレクトリに存在しない場合、プログラムは 2.php も参照します。テストディレクトリ内の
はなぜ発生しますか? 原因は何ですか?
require_onceの場合、最初のページパスに基づいていませんか?
-----ソリューションのアイデア----------------------インクルード (include_once、require、require_once) は実行されたファイルに基づきます
include_path で示されたパスに従ってファイルを検索します
通常は include_path = ".:/path1:/path2" (UNIX) または include_path = " .; path1;path2" (WINDOW)
つまり、.,/path1,/path2....の順に検索します。
検索順序は、実行されたプログラムがあるディレクトリです。他の include_path で指定されたディレクトリ
を設計する利点は、元のプロジェクト
を変更せずに、元のプロジェクトの一部の動作を変更できることです。 Index.php (require_once("test/1.php" );)
test/1.php (require_once("2.php");)
test/2.php
2.php (この 2.php は test/2.php を置き換えます)