0

この件は SO で議論されていることは知っていますが、解決策を見つけることができませんでした。

私はassign.phpを持っています:

$a=1;

require.php:

require "assign.php";

および echo.php:

require "require.php"
echo $a;

1.問題は、ファイルを複製せずに、別の場所から「require.php」を使用したい場合です。例えば、

/フォルダ/echo.php:

require "../require.php";
echo $a;

require.php は、存在しない /folder/assign.php を要求しようとしているため、機能しません。

require.php で完全な URL を使用しようとしています:

require "http://site.com/assign.php";

コードはインクルードされていませんがコンパイルされており、 $a はグローバルではないため、定義されていないため、どちらも機能しません。

グローバルの使用は実際には推奨されないという人もいました。

また、ファイルシステムのフル パスを使用することは危険であると言われています。

解決策は何ですか?require.php がどこからインクルードされていても、require.php が常に assign.php の正しいパスに移動するようにするにはどうすればよいですか?

4

2 に答える 2

5

require.php使用する必要があります

require dirname(__FILE__). "/assign.php";

これには、オンザフライで生成されたフルパスを指定することにより、正しいファイルが含まれます。

于 2012-12-01T14:36:57.450 に答える
2

グローバル定数を定義して使用できます。

define('ROOT_PATH', rtrim(dirname(__FILE__), "\\/"));

require ROOT_PATH . '/file.php';
于 2012-12-01T14:22:19.817 に答える