PHP中的超级变量
2024-10-20 06:18:28
超级变量,又名超级全局变量,是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数组中包含了大量的键值对,你可以通过其键来取出想要的信息
如果你不清楚该数组中究竟包含哪些键,有两种办法可以帮助你:
- 查阅PHP帮助手册
- 使用代码打印数组中所有的键值对
关于查阅帮助手册,没什么好说的。这里介绍第二种方式
既然$_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>
运行后,就可以在页面中看到数组中所有的键值对了
最新文章
- October 23rd Week 44th Sunday 2016
- jQuery Scroll Follow
- Yosemite系统怎么录制 iOS8设备屏幕
- Python图片处理
- The property &#39;RowId&#39; is part of the object&#39;s key information and cannot be modified.
- 基因组 de novo 组装原理
- 关于HttpWebRequest.KeepAlive
- jquery easyui datagrid数据自动换行 panel用法
- pyCharm安装破解
- 集群搭建(一)克隆虚拟机静态IP设置
- CodeForces 1151F Sonya and Informatics
- EC20 R2.1
- Java ConcurrentHashMap存入引用对象时也是线程安全的
- iOS之Settings.Bundle的应用
- Android学习之基础知识四-Activity活动5讲(Activity的生命周期)
- 掌握R语言中的apply函数族(转)
- MethodImplOptions.Synchronized的一点讨论
- CentOS 下 MySQL 5.7 编译安装
- DML语句报错是因为控制文件无法扩大还是另有原因?
- Lua 基础总结
热门文章
- TKE 注册节点,IDC 轻量云原生上云的最佳路径
- [OpenCV实战]7 使用YOLOv3和OpenCV进行基于深度学习的目标检测
- 迁移学习(DANN)《Domain-Adversarial Training of Neural Networks》
- 【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)
- ResourceQuota与LimitRange区别
- VUEX 的使用学习一
- GIT安装步骤记录以及Git 常用命令,忽略文件,推送本地代码到仓库示例以及报错解决
- js获取时间最详细~~~~
- python paramiko通过远程操作linux
- Vue15 v-for和key的作用及原理