PHP超全局数组是指在整个脚本中生效的全局变量,它们是预定义好的变量,可以在任何可见的位置访问。PHP中有以下5个超全局数组:
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)介绍
基础教程推荐
- php数组函数array_push()、array_pop()及array_shift()简单用法示例 2023-03-19
- Swoole源码中如何查询Websocket的连接问题详解 2023-04-25
- PHP token验证生成原理实例分析 2023-01-19
- php如何保留小数点后两位且不四舍五入 2022-09-16
- PHP使用QR Code生成二维码实例 2023-06-13
- PHP序列化和反序列化深度剖析实例讲解 2023-05-09
- php 可变函数使用小结 2022-10-31
- php关联数组与索引数组及其显示方法 2022-10-08
- 为Plesk PHP7启用Oracle OCI8扩展方法总结 2023-01-04
- PHP获取本周所有日期或者最近七天所有日期的方法 2022-11-04