PHP超全局数组是指在整个脚本中生效的全局变量,它们是预定义好的变量,可以在任何可见的位置访问。PHP中有以下5个超全局数组:
- $GLOBALS
- $_SERVER
- $_GET
- $_POST
- $_COOKIE
- $_REQUEST
- $_FILES
- $_ENV
下面详细介绍一下每一个超全局数组:
1. $GLOBALS
$GLOBALS 是一个包含了全部变量的全局组合数组,变量名就是数组的键名,变量值就是键值。例如:
$a = 10;
$b = 20;
function sum() {
global $a, $b;
$GLOBALS['c'] = $a + $b;
}
sum();
echo $GLOBALS['c']; // 输出 30
在上面的例子中,我们定义了两个变量 $a
和 $b
,在 sum()
函数中使用了 global
来访问 $a
和 $b
。然后我们将 $a + $b
的结果赋值给 $GLOBALS['c']
变量,最后在函数外部就可以直接使用 $GLOBALS['c']
变量来输出结果。
2. $_SERVER
$_SERVER
是一个包含了超级全局变量 $server
中的信息的数组。$server
中的信息包括了很多与服务器相关的元素,例如服务器目前运行的脚本名称,请求中的头信息,请求中的路径,客户端的 IP 地址,请求的方法等等。
// 示例:获取客户端的IP地址
echo $_SERVER['REMOTE_ADDR'];
3. $_GET
$_GET
是用来得到HTTP GET请求中的参数的数组。当我们使用 GET 方法向服务器提交请求时,服务器将参数信息按照 URL 参数的方式来传递。例如:
// URL 中有 ?name=John&age=30 参数
echo $_GET['name']; // 输出 John
echo $_GET['age']; // 输出 30
4. $_POST
$_POST
是用来得到 HTTP POST 请求中的参数。POST 请求的数据将存储在请求的主体中,而不是通过URL来进行传递。我们可以使用表单等方式来提交 POST 请求。例如:
// HTML 代码
<form action="submit.php" method="POST">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
// PHP 代码
echo $_POST['username']; // 输出提交的用户名
echo $_POST['password']; // 输出提交的密码
5. $_COOKIE
$_COOKIE
是由客户端发送到PHP的所有 cookie 的变量。当客户端与服务器进行交互时,服务器可以发送一个 cookie 给客户端,客户端将在下一次连接时将该 cookie 值自动发送回服务器。例如:
// 设置 cookie
setcookie('user', 'John', time()+3600); // 有效期为1小时
// 获取 cookie
echo $_COOKIE['user'];
示例
示例一:使用 $_SERVER 打印出当前网站的URL和用户的浏览器信息
echo '当前网站的URL:' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '<br>';
echo '用户的浏览器信息:' . $_SERVER['HTTP_USER_AGENT'];
示例二:使用 $_GET 和 $_POST 获取表单的数据
// HTML 代码
<form action="submit.php" method="POST">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
// PHP 代码
echo $_GET['username']; // 输出空,因为提交时使用了 POST 请求
echo $_POST['username']; // 输出提交的用户名
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP超全局数组(Superglobals)介绍 - Python技术站