ホームページ >バックエンド開発 >PHPチュートリアル >require_once は奇妙な現象です。見てみましょう
ルートディレクトリにある私のファイル require_once("test/1.php"); 次に 1.php require_once("2.php");
ケース 1. ルートディレクトリに 2.php が存在する場合、プログラムは参照します。ディレクトリ内のルート 2.php
状況 2. ルート ディレクトリに 2.php が存在しない場合、プログラムはテスト ディレクトリ内の 2.php も参照します
状況 2 が発生する理由はわかりません。それは何ですか?
require_once の場合、最初のページのパスに基づいていませんか?
include_path の値を変更しない限り、不可能です。
http://www.iloveweb.com.cn/test.rar
これはテスト ファイルです。興味があれば、ぜひ見てください。私も混乱しています。比較には相対パスを使用するとよいでしょう。混乱している場合は、次のような絶対パスを使用してみてください: dirname(__FILE__)."/test/1.php"
実行されたファイルに基づいて include (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 を置き換えます)