PHP超全局变量有很多,如下的都属于超全局变量Superglobal

$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。

官方说明:

$GLOBALS — 引用全局作用域中可用的全部变量。

一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

即出现过的全局变量,就可以通过$GLOBALS这个数组取得。

PHP生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的。

  1. <?php
  2. $foo = "Example content";
  3. test();
  4. function test() {
  5. $foo = "local variable";
  6. echo '$foo in current scope: ' . $foo . "<br>";
  7. echo '$foo in global scope: ' . $GLOBALS["foo"] . "<br>";
  8. }

如上的例子,要访问外部的$foo必须使用 $GLOBALS数组。对于通过include文件进来的外部全局变量也适用。

php中global也有这样的功能。它和$GLOBALS的区别在于。

global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量。

$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致!

对于类中的成员变量,类中函数必须使用$this->的方式访问,不能用$GLOBALS方式:

  1. <?php
  2. test{
  3. public $count=0;
  4. public function add(){
  5. $this->count=$this->count+2;
  6. return $this->count;
  7. }
  8. }
  9. $a=new test();
  10. echo $a->add();
  11. ?>

而不能直接如下写法

$count=$count+2;

return $count;

  1. <?php
  2. $foo = "Example content";
  3. test();
  4. function test() {
  5. unset( $GLOBALS["foo"] );
  6. }
  7. echo $foo;

上述代码运行,会报错:Undefined variable: foo。说明$GLOBALS["foo"]就是外面的$foo本身。

  1. <?php
  2. $foo = "Example content";
  3. test();
  4. function test() {
  5. global $foo;
  6. unset($foo);
  7. }
  8. echo $foo;

上述代码改成了global方式,运行后,成功打印出Example content

说明unset并未真正释放掉$foo变量。

本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/1043302 ,如需转载请自行联系原作者

PHP学习:PHP超全局变量(Superglobal)$GLOBALS的介绍以及和global的区别相关推荐

  1. php 超全局变量(整理)

    来源:https://www.cnblogs.com/wsybky/p/8745286.html 一.$GLOBALS 在GLOBALS数组中,每一个变量为一个元素,键名对于变量名,值对于变量的内. ...

  2. php5.4全局变量,PHP 5 全局变量 - 超全局变量

    标签: PHP 全局变量 - 超全局变量 PHP 中的许多预定义变量都是"超全局的",这意味着它们在一个脚本的全部作用域中都可用.在函数或方法中无需执行 global $varia ...

  3. PHP 全局变量 - 超全局变量

    PHP 超全局变量 超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量. PHP 超全局变量 PHP 中的许多预定义变量都是"超全局的",这意味着它们在 ...

  4. php局部变量和全局变量的区别,PHP局部变量、静态变量、全局变量和超全局变量的使用和区别...

    首先,PHP 中从变量的范围上可以分为 4 类,分别是静态变量.局部变量.全局变量和超全局变量. PHP 局部变量与全局变量 在 PHP 中中全局变量和局部变量的定义是和 C 语言类似的.在函数外定义 ...

  5. php 自定义超全局,一个超级简单的 PHP 超全局变量管理扩展

    一个超级简单的 PHP 超全局变量管理扩展(自卖自夸) 介绍 SG 全称 Superglobals,它的诞生为了方便快捷操作 PHP 预定义的超全局变量,用户定义的超全局变量. 如果在非 CLI 模式 ...

  6. [转]PHP 超全局变量详解 $GLOBALS $_SERVER $_GET $_POST $_COOKIE $_FILES $_ENV $_REQUEST $_SE

    PHP 超全局变量 $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量.该数组的键标为全局变量的 名称.从 PHP 3 开始存在 $GLOBALS 数组. $_SERVER 变量由 ...

  7. php中全局变量global和超全局变量$GLOBALS

    php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...

  8. PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别

    $GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容.$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量. php语法中,很多人都 ...

  9. php的globle超全局变量,php中全局变量global和超全局变量$GLOBALS

    php中全局变量global和超全局变量$GLOBALS 1.global Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require ...

最新文章

  1. Serverless 在大厂都怎么用?
  2. JVM 性能调优之定位问题
  3. pyqt5入门教程(三)
  4. 我跑了ERNIE和BERT两个模型,结果出乎意料......
  5. MySql分区表性能测试及切换案例
  6. 真正的OKR是什么?
  7. 使用Cygwin登录Raspberry PI
  8. 马云:用 10% 大脑创造出来的机器不可能毁灭人类
  9. JavaScript 图像延迟加载库 Echo.js的简单使用
  10. 2021-08-26BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding
  11. 小米2s刷原生安卓_小米2/2s/2a刷android4.4教程(附2/2s/2a安卓4.4卡刷包下载)
  12. Gin实现论坛(一)
  13. mysql数据库的单引号用法_[数据库]mysql单引号和双引号的用法
  14. An Underwater Image Enhancement Benchmark Dataset and Beyong
  15. 趣味点名软件_网传川大教授用刷脸软件点名 学生无人敢逃课
  16. revit 二次开发之创建图纸和放置视图
  17. 应用宝ysdk微信二维码扫码登录没有回调问题
  18. 什么蓝牙耳机打游戏好?打游戏好用的无线蓝牙耳机
  19. Redis 实现搜索关键词自动补全
  20. 更换移动硬盘显示图标

热门文章

  1. import csv into iaddressbook
  2. 深入理解JavaScript系列(33):设计模式之策略模式(转)
  3. 广播搜寻服务器的动态IP
  4. Cocos2d-x3.2 场景的生命周期
  5. 不同交换机不通过trunk在vlan间通信
  6. Sql2005自动备份并邮件通知状态之二创建维护计划
  7. linux线程栈溢出与局部变量,Linux下和core说再见之:栈溢出
  8. 互联网协议 — 互联网的技术发展
  9. notepad++主题
  10. 聊聊redis的HealthIndicator