这是随机 var_dump($GLOBALS)
的结果:
array(6) {
["_GET"] => array(0) {}
["_POST"] => array(0) {}
["_COOKIE"]=> array(1) {
["PHPSESSID"]=> string(26) "o8f2mggog45mq9p5ueafgu5hv6"
}
["_FILES"] => array(0) {}
["GLOBALS"] => array(6) {
["_GET"] => array(0) {}
["_POST"] => array(0) {}
["_COOKIE"] => array(1) {
["PHPSESSID"] => string(26) "o8f2mggog45mq9p5ueafgu5hv6"
}
["_FILES"] => array(0) {}
["GLOBALS"]=>
*RECURSION*
["_SESSION"]=> &array(1) {
["somestrings"]=> string(16) "someotherstrings"
}
}
["_SESSION"] => &array(1) {
["somestrings"] => string(16) "someotherstrings"
}
}
我是 PHP 的新手,不明白为什么 PHP 需要这样做?它不会使用更多存储空间吗?
最佳答案
因为根据定义,$GLOBALS
是一个全局变量;由于它包含所有全局变量,因此将自身包含在其中是有意义的。递归就在这些概念的定义中。
不,它不会使用更多的存储空间,因为它是一个指向自身的指针。如果它要递归地使用它自己的副本,就会耗尽内存。
关于php - 为什么 PHP 需要递归存储相同的全局数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37091464/