在变量变量(PHP)中使用$ _SERVER时出错
我试图通过GET参数获取超全局变量的名称。我被告知在get请求中只传递
_VAR_NAME
(没有$
),因此在程序中我必须通过变量变量访问它:$$_GET['parameter_name']
。
一切都很顺利,除了$_SERVER
。为了尝试什么是错的,我只是做了一个小的PHP脚本来测试发生了什么。这是代码:
<?php
// ¡¡ This does not work !!
$nombre = "_SERVER";
$var = $$nombre;
print_r($var);
// This works
$nombre = "_GET";
$var = $$nombre;
print_r($var);
?>
_SERVER
版本有什么原因不起作用吗?
我收到以下错误:
注意:未定义的变量:_SERVER
in...
没有找到相关结果
已邀请:
4 个回复
孤捷侩
这在功能上等同于
。 另一个要检查的关键是
本身是否存在。 (如果没有,请在脚本的开头放置一个空的
表达式。) 如果在
中修改了
,它可能不存在(虽然它应该在最近的PHP版本中显示为空数组。)
博沮富教全
桑娠贯涤
惭法搽
指令时,SERVER和ENV变量在首次使用时(Just In Time)创建,而不是在脚本启动时创建。 PHP手册警告变量变量: 在编译期间检查SERVER和ENV变量的用法 所以通过例如使用它们变量变量不会导致它们 初始化。 可能的解决方案是 使用PHP函数
而不是SERVER变量。 仅在脚本之前或之前添加行
。 禁用指令(在php.ini中:
,或在脚本内:
) 在数组$ GLOBALS中使用键'_SERVER'(
)