PHP中的超级变量
超级变量,又名超级全局变量,是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>
运行后,就可以在页面中看到数组中所有的键值对了
PHP中的超级变量的更多相关文章
- PHP中的超级全局变量
PHP内置了一些超级全局变量,我们可以在脚本的任何地方使用和可见,下面记录一下这些全局变量的作用: 1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户 ...
- CI中的超级对象
CI中的超级对象就是当前控制器对象,它提供了很多属性,可以通过var_dump($this)打印所有的超级对象: load可以理解为一个加载器,加载了很多功能,可以理解为当你使用 $this -> ...
- 关于ibatis中mysql的@变量问题作用域、污染问题
搞了1天,过程不想多说,结论如下: ibatis.net 是有连接池的,用ab.exe 并发测试,可以测出默认的max连接数 ibatis.net的数据操作 xml 中可以用@变量,也就是 Sessi ...
- [.net 面向对象编程基础] (5) 基础中的基础——变量和常量
[.net面向对象编程基础] (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...
- 解决ambiguous symbol命名空间中类名、变量名冲突的问题
最近在将一个复杂的工程集成到现有的项目中.编译时发现,有的变量名冲突了,提示就是xxxx ambiguous symbol,并且在编译输出时,指明了两个文件当中特定的变量名或者类名相同.出现这个编译错 ...
- OC中的私有变量和description
.OC中的私有变量 在类的实现即.m @implementation中也可以声明成员变量,但是因为在其他文件中通常都只 是包含头文件而不会包含实现文件,所以在.m文件中声明的成员变量是@private ...
- JS中的 公有变量、私有变量 !
公有变量.私有变量 ! 初学者的见解,算是记录学习过程,也算是分享以便共同成长,如有不正确的地方,还请不吝赐教! 先看代码1: function car(){ var wheel = 3; //私有变 ...
- CI控制器中设置在其它方法中可用的变量
开发过程中,某些变量可能需要被控制器中的其它方法所调用,这个变量改怎么设置呢? 其实可以用ci的$this->load->vars($array);和$this->load-> ...
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
这是在面试中遇到的一个问题,没有答出来,后来上网上查了一些资料,终于弄明白了: 一.首先c++标准规定成员变量必须在调用构造函数前进行初始化(这一点很重要) 二.如果我们在构造函数中对成员变量进行初始 ...
- 用户管理 之 Linux 系统中的超级权限的控制
在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户 ...
随机推荐
- 51NOD5213A 【提高组/高分-省选预科 第一场【M】】序列
小 Y 酷爱的接龙游戏正是这样.玩腻了成语接龙之后,小 Y 决定尝试无平方因子二元合数接龙,规则如下: 现有 \(n\) 个不超过 \(K\) 的合数,每个合数 \(a\) 均可表示为 \(a=pq( ...
- LRU 缓存
力扣题目 146. LRU 缓存 实现 LRU 缓存需要用到哈希链表 LinkedHashMap. LinkedHashMap 是由哈希表和双链表结合而成的,它的结构如下所示. 用自带的 Linked ...
- 使用Zolom内存解析运行python脚本(不落地)
在目标机器运行python工具 好多工具都是python写的,如果目标机器是linux的话自带python环境可以很方便的运行这些工具,但是windows下是不自带python环境的,所以一种办法是直 ...
- python利用matplotlib生成迷宫
起因 我想要写一个项目叫python迷宫游戏,需求是玩家能和机器对抗率先走出迷宫,至少要有两个等级的电脑. 慢慢来,首先迷宫游戏需要有一个迷宫并展示出来,这便是这篇博客的目的 假设迷宫使用0表示点,1 ...
- final关键字用于修饰成员方法-final关键字用于修饰局部变量
final关键字用于修饰成员方法 修饰方法 格式如下: 修饰符 final 返回值类型 方法名(参数列表){ //方法体 } 重写被 final 修饰的方法,编译时就会报错. final关键字用于修饰 ...
- 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做
摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...
- VMware虚拟软件使用方法、网络配置与远程连接排错方法
一.虚拟软件使用方法 1. 软件启动方法 系统当中有些软件是可以多次启动,多实例 vmware不具有多实例功能 2. 软件关闭注意事项 尽量选择挂起虚拟主机关闭软件 3. 虚拟主机拍快照(后悔药 月光 ...
- 基于NOSTR协议的“公有制”版本的Twitter,去中心化社交软件Damus用后感,一个极端走向另一个极端
最近,一个幽灵,Web3的幽灵,在网络游荡,它叫Damus,这玩意诠释了什么叫做病毒式营销,滑稽的是,一个Web3产品却在Web2的产品链上疯狂传销,各方大佬纷纷为其背书,到底发生了什么?Damus的 ...
- drf-三大认证源码分析、基于APIView编写分页、异常处理
1.权限源码分析 1.APIView源码497行:self.initial(request, *args, **kwargs)中进行了三大认证. 2.在initial的源码中,以下三行代码是进行三大认 ...
- 普冉PY32系列(四) PY32F002/003/030的时钟设置
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...