我正在尝试访问包含包含后在包含文件中定义的动态命名变量,例如:
要求“/path/to/my/include.php”; 回声 $_VariableDefinedInclude; // 输出变量 echo $GLOBALS["NameOfTheVariableDefinedInInclude"]; // 没有输出?
知道为什么变量不在 $GLOBALS 数组中吗?有没有像 constant() 这样的函数,但对于标准变量,我可以使用它来通过变量名动态访问变量?
谢谢
鉴于变量是动态命名的,也许:
echo $GLOBALS[$GLOBALS["NameOfTheVariableDefinedInInclude"]];
会成功的。
$GLOBALS 数组仅适用于使用 global 关键字设置的变量。如果您包含另一个文件,则它本质上与代码都在同一个文件中相同。换句话说,您仍然可以在同一范围内访问该变量。没有必要使用 $GLOBALS 或任何东西。此外,如果该变量是常量,您可以使用 const (PHP 5.3) 或 define('KEY', $val) 将其定义为常量。