2

インクルードがインクルードされた後、インクルード ファイル内で定義されている動的に名前が付けられた変数にアクセスしようとしています。次に例を示します。

"/path/to/my/include.php" が必要です。
echo $_VariableDefinedInInclude; // 変数を出力します
echo $GLOBALS["NameOfTheVariableDefinedInInclude"]; // 何も出力しない?

変数が $GLOBALS 配列にない理由は何ですか? constant() のような関数がありますが、名前で変数に動的にアクセスするために使用できる標準変数用ですか?

ありがとう

4

2 に答える 2

0

$GLOBALS 配列は、global キーワードで設定された変数にのみ適用されます。別のファイルをインクルードしている場合は、コードがすべて同じファイルにあるのと本質的に同じです。つまり、同じスコープ内のその変数に引き続きアクセスできます。$GLOBALS などを使用する必要はありません。さらに、その変数が定数の場合、const (PHP 5.3) または define('KEY', $val) を使用して、代わりに定数として定義できます。

于 2010-11-02T00:26:09.263 に答える
0

変数が動的に命名されている場合、おそらく次のようになります。

echo $GLOBALS[$GLOBALS["NameOfTheVariableDefinedInInclude"]];

トリックを行います。

于 2011-01-03T19:05:50.353 に答える