超级变量,又名超级全局变量,是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>

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

最新文章

  1. October 23rd Week 44th Sunday 2016
  2. jQuery Scroll Follow
  3. Yosemite系统怎么录制 iOS8设备屏幕
  4. Python图片处理
  5. The property &#39;RowId&#39; is part of the object&#39;s key information and cannot be modified.
  6. 基因组 de novo 组装原理
  7. 关于HttpWebRequest.KeepAlive
  8. jquery easyui datagrid数据自动换行 panel用法
  9. pyCharm安装破解
  10. 集群搭建(一)克隆虚拟机静态IP设置
  11. CodeForces 1151F Sonya and Informatics
  12. EC20 R2.1
  13. Java ConcurrentHashMap存入引用对象时也是线程安全的
  14. iOS之Settings.Bundle的应用
  15. Android学习之基础知识四-Activity活动5讲(Activity的生命周期)
  16. 掌握R语言中的apply函数族(转)
  17. MethodImplOptions.Synchronized的一点讨论
  18. CentOS 下 MySQL 5.7 编译安装
  19. DML语句报错是因为控制文件无法扩大还是另有原因?
  20. Lua 基础总结

热门文章

  1. TKE 注册节点,IDC 轻量云原生上云的最佳路径
  2. [OpenCV实战]7 使用YOLOv3和OpenCV进行基于深度学习的目标检测
  3. 迁移学习(DANN)《Domain-Adversarial Training of Neural Networks》
  4. 【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)
  5. ResourceQuota与LimitRange区别
  6. VUEX 的使用学习一
  7. GIT安装步骤记录以及Git 常用命令,忽略文件,推送本地代码到仓库示例以及报错解决
  8. js获取时间最详细~~~~
  9. python paramiko通过远程操作linux
  10. Vue15 v-for和key的作用及原理