在 PHP 中对 GLOBALS 数组使用 var_dump() 时出现意外输出

Unexpected output when using var_dump() over GLOBALS array in PHP

我有这个代码:

<?php

$p = 9;
$p1 = 7;

function myTest(){
    static $x = 6;
    var_dump($GLOBALS);
}

myTest();
?>

我有以下输出,任何人都可以帮助我理解该输出的含义:

array(7) { ["_GET"]=> array(1) { ["_ijt"]=> string(26) "ahnjuf13d078eoci4stj3ke4ti" } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(1) { ["Phpstorm-a9066f19"]=> string(36) "362d152a-496e-48ee-8e53-281e38eefd84" } ["_FILES"]=> array(0) { } ["GLOBALS"]=> RECURSION ["p"]=> int(9) ["p1"]=> int(7) } array(7) { ["_GET"]=> array(1) { ["_ijt"]=> string(26) "ahnjuf13d078eoci4stj3ke4ti" } ["_POST"]=> array(0) { } ["_COOKIE"]=> array(1) { ["Phpstorm-a9066f19"]=> string(36) "362d152a-496e-48ee-8e53-281e38eefd84" } ["_FILES"]=> array(0) { } ["GLOBALS"]=> RECURSION ["p"]=> int(9) ["p1"]=> int(7) }

$GLOBAL 是一个 php 超级全局变量,它 returns 一个关联数组,包含对当前在脚本全局范围内定义的所有变量的引用。其中变量名是数组的键。它也可以用来代替 'global' 关键字来访问全局范围内的变量

在您的情况下,要访问 $p$p1,您可以遵循以下语法

<?php

$p = 9;
$p1 = 7;

function myTest(){
    static $x = 6;
    var_dump($GLOBALS['p']);
    var_dump($GLOBALS['p1']);
}

myTest();
?>