【问题标题】:Notice: Undefined variable: $_SERVER in /opt/lampp/htdocs/pathToFile on line #LineNumber [duplicate]注意:未定义的变量:/opt/lampp/htdocs/pathToFile 中的 $_SERVER #LineNumber [重复]
【发布时间】:2020-07-18 21:41:24
【问题描述】:

目标:我试图通过从我创建的 array 列表中获取所有 super global 变量来一一打印。

$sectionsToPrint = array(
  'server' => '$_SERVER','get'=>'$_GET','post'=>'$_POST'
);


foreach ($sectionsToPrint as $k => $v) {
        foreach ($$v as $k2 => $v2) { //#LineNumber
          echo "$k2=$v2<br /><br />";
        }
    }

【问题讨论】:

  • 为什么不使用array_merge
  • 主要目的:从数组中取出字符串,作为循环变量。

标签: php arrays variables global super


【解决方案1】:

不要在数组中引用superglobals,而是简单地使用它们:

$sectionsToPrint = [
    'server' => $_SERVER, 'get' => $_GET, 'post' => $_POST
];


foreach ($sectionsToPrint as $k => $v) {
    foreach ($v as $k2 => $v2) {
        echo "$k2=$v2<br /><br />";
    }
}

或(如 cmets 中所建议的):

$sectionsToPrint = array_merge($_SERVER, $_GET, $_POST);

foreach ($sectionsToPrint as $k => $v) {
    echo "$k=$v<br /><br />";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2015-06-26
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多