PHP Conference Japan 2024

超级全局变量

超级全局变量始终在所有作用域中可用的内置变量

描述

PHP 中的几个预定义变量是“超级全局变量”,这意味着它们在整个脚本的所有作用域中都可用。无需使用 global $variable; 即可在函数或方法中访问它们。

这些超级全局变量是

注释

注意: 变量可用性

默认情况下,所有超级全局变量都可用,但有一些指令会影响此可用性。有关更多信息,请参阅 variables_order 的文档。

注意: 变量变量

超级全局变量不能在函数或类方法内部用作 变量变量

添加注释

用户贡献的注释 1 条注释

kitchin
11 年前
从 PHP 5.4 开始,您不能将超级全局变量用作函数的参数。这会导致致命错误

function foo($_GET) {
// 无论如何
}

这被称为“隐藏”超级全局变量,我不知道人们为什么要这样做,但我见过这种情况。简单的解决方法是在函数中将变量重命名为 $get,假设该名称是唯一的。

根据我的测试,在 PHP 的先前版本中没有发出弃用警告,在 5.3 或 5.2 中都没有。5.4 中的错误消息为
致命错误:无法重新分配自动全局变量 _GET in...
致命错误:无法重新分配自动全局变量 _COOKIE in...
等等。
To Top