2016-08-25 14 views
1

phpがページ呼び出し上のパスをどのようにインクルードするのかを正確に理解しようとしています。phpインクルードパスを理解する

include_once("functions/functionsFile1.php"); 
include_once('settings/settingsFile.php'); 
を持っているので、簡単な1がindex.phpのある

settingFile.php /機能/ functionFile1.php、機能/ functionFile2.phpや設定、私はベースディレクトリ内のindex.phpを考えてみましょうそれは、これが動作することでどのように

include_once('settings/settingsFile.php'); 
include_once('functionsFile2.php); 

function DoX() 
{ 
    include("settings/settings.php"); 
    $variableInSettingsPage; 
} 

:functions1ファイルで

? functions1.phpファイルは、自分自身(functions2.php)とその呼び出しページ(settings/settings.php)の両方からファイルを呼び出すことができるようですか?そして、設定ファイルの呼び出しを必要とする関数は、スコープ外であってもページを基準にしたパスの使用を拒否しても、呼び出しページに関連するパスを使用できますか?

+1

を使用して、あなたのinclude_pathに何があるか確認することができます。 – jeroen

+0

格納されているファイルに相対的なパスを使用して関数呼び出しを行う必要がありますか? –

+0

'require'と' include'はまったく同じように動作しますが、 'require'はファイルが見つからないときにエラーを出します。 – jeroen

答えて

0

phpはインクルードパスを使用します。ファイルが含まれるすべてのパスがそこに格納されます。 ファイルをインクルードしようとすると、phpはすべてのパスをループして、ファイルがそのパスに含まれているかどうかをチェックします。そうであれば、ループを止めてインクルードします。インクルードしていなければ、最後に達してエラーが発生します。

あなたは、あなたはおそらく、あなたはそれがないと思うところ、それは動作しないことがわかりますrequire` `と` include_once`を交換する場合get_include_path()

関連する問題