超级全局变量

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

描述

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

这些超级全局变量是

注意

注意: 变量可用性

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

注意: 变量变量

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

添加备注

用户贡献的备注 2 个备注

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

function foo($_GET) {
// 无论什么
}

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

根据我的测试,在之前的 PHP 版本中没有发出弃用警告,包括 5.3 和 5.2。5.4 中的错误消息为
致命错误:无法重新分配自动全局变量 _GET in...
致命错误:无法重新分配自动全局变量 _COOKIE in...
等等。
greaties at ghvernuft dot nl
1 年前
Mife 的评论中修正了两个错误,但这样就可以了

<?php
// 在这种特殊情况下,您确实需要 global
function get_var($varname){
global $
$varname;
var_dump( $$varname);
}

get_var('_POST');
?>
To Top