为什么在$ GLOBALS数组中定义的include中没有定义变量?

时间:2010-11-02 00:23:01

标签: php include globals

我正在尝试访问包含include之后在include文件中定义的动态命名变量,例如:

require "/path/to/my/include.php";
echo $_VariableDefinedInInclude; // outputs the variable
echo $GLOBALS["NameOfTheVariableDefinedInInclude"]; // nothing outputs?

知道为什么变量不在$ GLOBALS数组中?是否存在类似constant()的函数,但是对于标准变量,我可以使用它来通过名称动态访问变量吗?

由于

2 个答案:

答案 0 :(得分:0)

$ GLOBALS数组仅适用于使用global关键字设置的变量。如果要包含另一个文件,则它与同一文件中的所有代码基本相同。换句话说,您仍然可以访问同一范围内的该变量。没有必要使用$ GLOBALS或任何东西。另外,如果该变量是常量,则可以使用const(PHP 5.3)或define('KEY',$ val)将其定义为常量。

答案 1 :(得分:0)

鉴于该变量是动态命名的,可能是:

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

会做到这一点。