*RECURSION*在打印$ GLOBALS时意味着什么?

swa*_*esh 8 php arrays recursion

当我$GLOBALS使用此代码打印时:

<?php print_r($GLOBALS); ?>
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

Array ( [_GET] => Array ( ) [_POST] => Array ( ) [_COOKIE] => Array ( ) [_FILES] => Array ( ) [GLOBALS] => Array *RECURSION* )

这是什么*RECURSION*意思在这种情况下,为什么是$_SERVER,$_REQUEST等不得印呢?

Tad*_*eck 4

请参阅PHP 手册的这一部分

请记住,$GLOBALS 本身就是一个全局变量。所以这样的代码是行不通的:

<?php
    print '$GLOBALS = ' . var_export($GLOBALS, true) . "\n";
?>
Run Code Online (Sandbox Code Playgroud)

这会导致错误消息:“嵌套级别太深 - 递归依赖?”

您已经检索了整个列表 - 您只是无法显示其中的一部分(包含递归的列表,因为您会超时而不是任何有意义的内容)。

当谈到 时,它是、和$_REQUEST的派生词,因此其内容是多余的。$_GET$_POST$_COOKIE

编辑:有一个旧的错误/功能,似乎在访问它们时填充$GLOBALS。因此尝试访问并希望它有所帮助。无论如何,之后可以找到它:ideone.com/CGetH$_SERVER$_REQUEST$_REQUEST$GLOBALS