我试图传递一个变量,其中包含我想要一个函数处理的超全局数组的名称,但我无法让它工作,它只会声称有问题的变量不存在并返回 null。
我已将测试用例简化为以下代码:
function accessSession ($sessName)
{
var_dump ($$sessName);
}
$sessName = '_SERVER';
var_dump ($$sessName);
accessSession ($sessName);
函数外部的 var_dump 按预期返回 $_SERVER 的内容。但是,函数中的 var_dump 会触发上面提到的错误。
添加global $_SERVER
到函数并没有使错误消失,但是将 $_SERVER 分配给另一个变量并使该变量成为全局变量确实有效(见下文)
function accessSession ($sessName)
{
global $test;
var_dump ($$sessName);
}
$test = $_SERVER;
$sessName = 'test';
var_dump ($$sessName);
accessSession ($sessName);
这是一个 PHP 错误,还是我只是做错了什么?