1

2.phpのrequire_onceを持つファイル1.phpがあります(両方とも異なるフォルダーにあります)。私が抱えている問題は、2.phpのパスが1.phpにないため、1.phpに2.phpが魔法のように含まれているように見えることです。念のため、require_once '2.php'の前にset_include_path('。')を追加しましたが、それでも機能します...何か明らかなものが欠けているのでしょうか、それともこれは奇妙なことでしょうか?

編集:

//-- file 1.php
//-- long list of requires...
set_include_path('.');
echo get_include_path();
require_once '2.php';

上記は、1.phpと2.phpが異なるフォルダーにある場合でも正常に機能します。

4

5 に答える 5

2

PHPにはいくつかの魔法が含まれていますが、私は以前にそれを満たしました。
何かオートロードに関連していると思います。
クラスが実行されているファイルが存在するフォルダーを常に検索します

于 2010-08-23T10:43:59.497 に答える
1

議論のために、2.phpを1.phpと同じ場所に置くと、古いファイルの代わりに新しいファイルが含まれますか?

あなたの価値が何であるかを使用して教えてもらえますopen_basedirか?

于 2010-08-23T10:16:58.813 に答える
1

空のインクルードパスを設定した後で試してくださいecho get_include_path()。他の場所に設定されている可能性があります(Webサーバーの構成ファイルなど)。

于 2010-08-23T09:50:34.583 に答える
1

ロングショットですが、含まれている他のファイルの1つが、現在の作業ディレクトリを変更した可能性があります。

<?php
echo 'cwd at the beginning of 1.php: ', getcwd(), "\n";
//-- file 1.php
//-- long list of requires...
set_include_path('.');
echo 'include_path: ', get_include_path(), " \n";
echo 'cwd: ', getcwd(), "\n";
require_once '2.php';
于 2010-08-23T10:04:56.113 に答える
1

おそらく、ファイル1のパスにファイル2と同じ名前のファイルがあります。

于 2010-08-23T10:41:48.173 に答える