PHP中的超级变量

超级变量,又名超级全局变量,是PHP内置的变量,这些变量在代码的任意位置都能正常使用



9种超级变量

目前,PHP提供了9种超级变量:

变量名类型存放的内容
$GLOBALS 数组 存放了所有的全局变量
$_SERVER 数组 请求头信息以及服务器环境信息
$_GET 数组 通过GET请求传递给服务器的键值对
$_POST 数组 通过POST请求传递给服务器的键值对
$_COOKIE 数组 COOKIE数组
$_REQUEST 数组 包含所有$_GET$_POST$_COOKIE的数据
$_SESSION 数组 SESSION数组
$_FILES 数组 与文件上传相关的数组
$_ENV 数组 环境变量数组

从上表中可以看出,无论是什么超级变量,它们的数据类型都是数组

上表中的某些超级变量,属于后面的知识,本文仅讲解其中一部分超级变量

$GLOBALS

这个超级变量很有意思,它里面存放了所有的全局变量

在之前的课程中,你学习过全局变量,全局变量就是定义在函数体之外的变量

也就是说,当我们创建一个全局变量的时候,实际上,就是往超级变量$GLOBALS中写入了一个数据

举一个简单的例子,看下面的代码:

$a = 3;
$b = 'hello';

这段代码定义了两个全局变量a和b,这两句代码运行后,就相当于向超级变量$GLOBALS中,加入了两个键值对:

运行后,$GLOBALS数组的内容:

a 3
b hello

既然是这样,那我们能不能使用超级变量$GLOBALS来访问全局变量呢?当然可以!

$a = 3;
$b = 'hello';
echo $GLOBALS['a'];//等效于 echo $a,输出3
echo $GLOBALS['b'];//等效于 echo $b,输出hello

同样的,我们也可以使用超级变量$GLOBALS来创建全局变量

$GLOBALS['a'] = 3;//等效于 $a = 3
$GLOBALS['b'] = 'hello'; //等效于$b = 'hello'
echo $a;//输出3
echo $b;//输出hello

$_SERVER

该变量中存放的不仅仅是请求头中的数据,还包含一些客户端信息和服务器信息

$_SERVER数组中包含了大量的键值对,你可以通过其键来取出想要的信息

如果你不清楚该数组中究竟包含哪些键,有两种办法可以帮助你:

  1. 查阅PHP帮助手册
  2. 使用代码打印数组中所有的键值对

关于查阅帮助手册,没什么好说的。这里介绍第二种方式

既然$_SERVER是一个数组,那么你可以使用foreach循环打印出该数组所有的内容:

<html lang="en">
<head>
<title>document</title>
<style>
td{border:1px solid gray;}
</style>
</head>
<body>
<table>
<?php
foreach ($_SERVER as $key=>$value){
echo "<tr><td>$key</td><td>$value</td></tr>";
}
?>
</table>
</body>
</html>

运行后,就可以在页面中看到数组中所有的键值对了

posted @ 2017-08-15 17:55  绝版扫地僧  阅读(1496)  评论(0编辑  收藏  举报