PHP学习:PHP超全局变量(Superglobal)$GLOBALS的介绍以及和global的区别
PHP超全局变量有很多,如下的都属于超全局变量Superglobal
$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。
官方说明:
$GLOBALS — 引用全局作用域中可用的全部变量。
一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
即出现过的全局变量,就可以通过$GLOBALS这个数组取得。
PHP生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的。
- <?php
- $foo = "Example content";
- test();
- function test() {
- $foo = "local variable";
- echo '$foo in current scope: ' . $foo . "<br>";
- echo '$foo in global scope: ' . $GLOBALS["foo"] . "<br>";
- }
如上的例子,要访问外部的$foo必须使用 $GLOBALS数组。对于通过include文件进来的外部全局变量也适用。
php中global也有这样的功能。它和$GLOBALS的区别在于。
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量。
$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致!
对于类中的成员变量,类中函数必须使用$this->的方式访问,不能用$GLOBALS方式:
- <?php
- test{
- public $count=0;
- public function add(){
- $this->count=$this->count+2;
- return $this->count;
- }
- }
- $a=new test();
- echo $a->add();
- ?>
而不能直接如下写法
$count=$count+2;
return $count;
- <?php
- $foo = "Example content";
- test();
- function test() {
- unset( $GLOBALS["foo"] );
- }
- echo $foo;
上述代码运行,会报错:Undefined variable: foo。说明$GLOBALS["foo"]就是外面的$foo本身。
- <?php
- $foo = "Example content";
- test();
- function test() {
- global $foo;
- unset($foo);
- }
- echo $foo;
上述代码改成了global方式,运行后,成功打印出Example content
说明unset并未真正释放掉$foo变量。
本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/1043302 ,如需转载请自行联系原作者
PHP学习:PHP超全局变量(Superglobal)$GLOBALS的介绍以及和global的区别相关推荐
- php 超全局变量(整理)
来源:https://www.cnblogs.com/wsybky/p/8745286.html 一.$GLOBALS 在GLOBALS数组中,每一个变量为一个元素,键名对于变量名,值对于变量的内. ...
- php5.4全局变量,PHP 5 全局变量 - 超全局变量
标签: PHP 全局变量 - 超全局变量 PHP 中的许多预定义变量都是"超全局的",这意味着它们在一个脚本的全部作用域中都可用.在函数或方法中无需执行 global $varia ...
- PHP 全局变量 - 超全局变量
PHP 超全局变量 超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量. PHP 超全局变量 PHP 中的许多预定义变量都是"超全局的",这意味着它们在 ...
- php局部变量和全局变量的区别,PHP局部变量、静态变量、全局变量和超全局变量的使用和区别...
首先,PHP 中从变量的范围上可以分为 4 类,分别是静态变量.局部变量.全局变量和超全局变量. PHP 局部变量与全局变量 在 PHP 中中全局变量和局部变量的定义是和 C 语言类似的.在函数外定义 ...
- php 自定义超全局,一个超级简单的 PHP 超全局变量管理扩展
一个超级简单的 PHP 超全局变量管理扩展(自卖自夸) 介绍 SG 全称 Superglobals,它的诞生为了方便快捷操作 PHP 预定义的超全局变量,用户定义的超全局变量. 如果在非 CLI 模式 ...
- [转]PHP 超全局变量详解 $GLOBALS $_SERVER $_GET $_POST $_COOKIE $_FILES $_ENV $_REQUEST $_SE
PHP 超全局变量 $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量.该数组的键标为全局变量的 名称.从 PHP 3 开始存在 $GLOBALS 数组. $_SERVER 变量由 ...
- php中全局变量global和超全局变量$GLOBALS
php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...
- PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容.$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量. php语法中,很多人都 ...
- php的globle超全局变量,php中全局变量global和超全局变量$GLOBALS
php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...
最新文章
- Serverless 在大厂都怎么用?
- JVM 性能调优之定位问题
- pyqt5入门教程(三)
- 我跑了ERNIE和BERT两个模型,结果出乎意料......
- MySql分区表性能测试及切换案例
- 真正的OKR是什么?
- 使用Cygwin登录Raspberry PI
- 马云:用 10% 大脑创造出来的机器不可能毁灭人类
- JavaScript 图像延迟加载库 Echo.js的简单使用
- 2021-08-26BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding
- 小米2s刷原生安卓_小米2/2s/2a刷android4.4教程(附2/2s/2a安卓4.4卡刷包下载)
- Gin实现论坛(一)
- mysql数据库的单引号用法_[数据库]mysql单引号和双引号的用法
- An Underwater Image Enhancement Benchmark Dataset and Beyong
- 趣味点名软件_网传川大教授用刷脸软件点名 学生无人敢逃课
- revit 二次开发之创建图纸和放置视图
- 应用宝ysdk微信二维码扫码登录没有回调问题
- 什么蓝牙耳机打游戏好?打游戏好用的无线蓝牙耳机
- Redis 实现搜索关键词自动补全
- 更换移动硬盘显示图标