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

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

PHP中的超级变量的更多相关文章

  1. PHP中的超级全局变量

    PHP内置了一些超级全局变量,我们可以在脚本的任何地方使用和可见,下面记录一下这些全局变量的作用: 1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户 ...

  2. CI中的超级对象

    CI中的超级对象就是当前控制器对象,它提供了很多属性,可以通过var_dump($this)打印所有的超级对象: load可以理解为一个加载器,加载了很多功能,可以理解为当你使用 $this -> ...

  3. 关于ibatis中mysql的@变量问题作用域、污染问题

    搞了1天,过程不想多说,结论如下: ibatis.net 是有连接池的,用ab.exe 并发测试,可以测出默认的max连接数 ibatis.net的数据操作 xml 中可以用@变量,也就是 Sessi ...

  4. [.net 面向对象编程基础] (5) 基础中的基础——变量和常量

    [.net面向对象编程基础]  (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...

  5. 解决ambiguous symbol命名空间中类名、变量名冲突的问题

    最近在将一个复杂的工程集成到现有的项目中.编译时发现,有的变量名冲突了,提示就是xxxx ambiguous symbol,并且在编译输出时,指明了两个文件当中特定的变量名或者类名相同.出现这个编译错 ...

  6. OC中的私有变量和description

    .OC中的私有变量 在类的实现即.m @implementation中也可以声明成员变量,但是因为在其他文件中通常都只 是包含头文件而不会包含实现文件,所以在.m文件中声明的成员变量是@private ...

  7. JS中的 公有变量、私有变量 !

    公有变量.私有变量 ! 初学者的见解,算是记录学习过程,也算是分享以便共同成长,如有不正确的地方,还请不吝赐教! 先看代码1: function car(){ var wheel = 3; //私有变 ...

  8. CI控制器中设置在其它方法中可用的变量

    开发过程中,某些变量可能需要被控制器中的其它方法所调用,这个变量改怎么设置呢? 其实可以用ci的$this->load->vars($array);和$this->load-> ...

  9. C++中使用初始化列表比在构造函数中对成员变量赋值更高效

    这是在面试中遇到的一个问题,没有答出来,后来上网上查了一些资料,终于弄明白了: 一.首先c++标准规定成员变量必须在调用构造函数前进行初始化(这一点很重要) 二.如果我们在构造函数中对成员变量进行初始 ...

  10. 用户管理 之 Linux 系统中的超级权限的控制

    在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户 ...

随机推荐

  1. 解决多次重连rabbitMQ失败

    项目中有用到rabbitMQ,但由于防火墙原因只有在SIT环境下才能连上rabbitMQ,在本地是无法连上rabbitMQ的.如下: 为了不影响调试,临时解决方法为禁止rabbitMQ打印日志.在lo ...

  2. Django框架:13、csrf跨站请求伪造、auth认证模块及相关用法

    Django框架 目录 Django框架 一.csrf跨站请求伪造 1.简介 2.csrf校验策略 form表单csrf策略 ajax请求csrf策略 3.csrf相关装饰器 FBV添加装饰器方式 C ...

  3. Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境

    Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境 环境准备 安装jdk环境 安装idea 配置maven 搭建好的hadoop集群 配置hadoop ...

  4. 前菜--Numpy

    import numpy as np NumPy : numberial python NumPy的核心:数据结构 ndarray 1.1 数组方法 np.array 创建数组 基本语法:np.arr ...

  5. Java遍历Map集合

    Java遍历Map集合简单例子 import java.util.*; public class Main { public static void main(String[] args) { Has ...

  6. flutter 1.升级2.X在模型类中序列化JSON报错Non-nullable instance field 'title' must be initialized.

    flutter 1.升级2.X在模型类中序列化JSON报错 Non-nullable instance field 'title' must be initialized. Try adding an ...

  7. JSTL概述和JSTL常用标签if

    JSTL概述 1.概念:JavaServlet Pages Tag Library(JSP标准标签库) 是由Apache组织提供的开源的免费的jsp标签 <标签> 2.作用:用于简化和替换 ...

  8. wsl2和ArchLinux的安装

    版权声明:本文章参考了哔哩哔哩稿件BV1sW411v7VZ,如侵权请主动联系删除 1.Wsl2的安装 启用适用于 Linux 的 Windows 子系统 在终端运行:dism.exe /online ...

  9. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0

    maven package 异常,今天打包springboot项目时碰到的问题. Failed to execute goal org.apache.maven.plugins:maven-resou ...

  10. C++迭代器种类与编译期间多态

    迭代器分类 C++ STL 中根据移动能力将迭代器分成了 5 类: Input Iterator 输入迭代器,只支持 operator++ 操作. Output Iterator 输出迭代器,只支持 ...