PHP*_*Fan 8 php arrays global global-variables superglobals
我正在从w3schools的PHP教程学习PHP.
在学习PHP时,我遇到了预定义全局变量的概念,即Superglobals.
为了更好地理解"Superglobals",我写了下面的代码并在我的本地机器上的浏览器中执行它(ielocalhost):
<!DOCTYPE html>
<html>
<body>
<?php
echo "<pre>";
print_r($GLOBALS);
echo "</pre>";
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我在浏览器中得到了以下输出:
Array
(
[_GET] => Array
(
)
[_POST] => Array
(
)
[_COOKIE] => Array
(
[toWorkNormally] => 1
)
[_FILES] => Array
(
)
[GLOBALS] => Array
*RECURSION*
)
Run Code Online (Sandbox Code Playgroud)
以上输出在我的脑海中产生了许多疑点如下:
$GLOBALS,
$_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE
和
$_SESSION
那么我的疑问是什么呢,从预定的整个数组的数组元素
$GLOBALS
即 [_GET], [_POST], [_COOKIE], [_FILES]
意味着他们有超自然的独立存在吗?[toWorkNormally] => 1
上面的数组输出是什么意思?[GLOBALS]
以及如何打印这些元素?$GLOBALS
数组的目的是存储用户全局声明的变量,那么这个数组是如何预先填充其他一些值的,因为我没有在我的代码中声明任何全局变量?注意:我在我的机器上使用"Microsoft Windows 10 Home Single Language"操作系统.这是一个64位操作系统.我正在使用最新版本的XAMPP与PHP 7.0.13和HTTP Apache Web服务器v.2.4.23在本地运行程序.另请注意,我的代码中没有将任何其他变量定义为全局变量或本地变量.
小智 0
$GLOBALS
是所有超级全局变量和用户定义变量的全局变量。因此,例如,如果您$a = 10;
在$GLOBALS
数组中声明了变量,则您有 key=>value 对,其中 key 是 a,value 是 10。如果您想从中获取某些内容,$GLOBALS
只需将其写为数组键即可。
例子
$a = 25;
echo $GLOBALS['a'];
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,输出的值为$a
so 25;
在您的示例中,toWorkNormally=>1
这意味着您已设置名为 toWorkNormally 且值为 1 或 true 的 cookie
此外,当您在$GLOBALS['_GET']
或$GLOBALS['_POST']
那里使用 get 或 post 方法提交表单时,您可以找到表单数据,因为您可以从超级全局$_GET
或$_POST