当前位置: 首页 > news >正文

PHP全局变量global与$GLOBAL详解

一、一个全局变量相当于有3个变量, 函数外部的变量,函数内部的变量,及$GLOBAL的超全局变量 $GLOBAL是全局唯一的,而$var在为全局变量的别名。
二、 无论函数内部外部,只要曾经声明过全局变量,则$GLOBAL为全局的,无需再次声明
三、在函数内部unset  $var1 不会影响外部的变量,以及$GLOBAL['var1']。 在函数内部的变量 global $var1 应是全局变量在函数内的一个别名。
四、在函数外部unset($var1),$GLOBAL['var1']依然存在。
五、在函数外部 unset($GLOBALS['var1']) 后,$var1仍然存在;
六、如果在函数外部声明一个全局变量global $var,则$GLOBAL['var'] 指向同一地址。 但是函数内部的$var 与其没有关系,除非使用global传递进来。
七、如果在函数内部声明一个全局变量global $var,则$GLOBAL['var'] 指向同一地址。但是外部的 $var 与其没有关系,除非使用global 传递过来。

 1、如果想在PHP中使用全局变量,可参考下图:

需要在外部用global声明,同时在函数内部进行声明,否则在函数内部会当局部变量。

 2、在外部不用global则外部的就是不是全局变量,无法在函数内部使用:

内部用了关键字global,在内部或外部$global['var1']、$global['var2]均为全局变量;

3、注释函数内部的global,则变量$var1 $var2 在函数内部的为局部变量,与外部互补干涉。则$GLOBALS为全局变量;

 4当不用global时,外部变量无法在函数内使用,内部变量无法影响外部函数,且无$GLOBALS可用;

5、unset($GLOBALS) 只会unset  $GLOBALS,函数内部的全局变量不受影响;

6、在函数内部unset 变量,只是把内部的变量unset掉了。函数内的全局变量只是一个全局变量的别名而已。

7、&引用,就是改变了变量的地址值(变量的引用传递)。

--在函数中把$GLOBAL['var2']指向了 $GLABAL['var1'],所以在函数内部时均一致;

--在函数外部var1 与 $GLOBALS['var1']一致,所以这3个变量一致。全局变量var1在函数内外时均一致;

--在函数内部的var2 与外部的var2 为同一个变量,在内外时均一致;

--此时只是把 $GLOBALS['var2']的因为修改为了var1,其它变量的值均为变化。

相关文章:

  • php知识整理
  • PHP中$_SERVER的详细用法
  • MyBatis整理
  • ButterKnife介绍
  • Android之Activity全面解析
  • Android Fragment使用详解
  • Spring的定时任务(任务调度)
  • InfluxDB详解
  • 时序数据库
  • ICMP详解
  • 各种时间定义
  • 浏览器工作原理
  • 深入浅出Object.defineProperty()
  • Android知识整理
  • Android Adapter详解
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • Codepen 每日精选(2018-3-25)
  • ES6 学习笔记(一)let,const和解构赋值
  • node和express搭建代理服务器(源码)
  • Protobuf3语言指南
  • React组件设计模式(一)
  • Windows Containers 大冒险: 容器网络
  • 成为一名优秀的Developer的书单
  • 从输入URL到页面加载发生了什么
  • 记一次用 NodeJs 实现模拟登录的思路
  • 简单数学运算程序(不定期更新)
  • 今年的LC3大会没了?
  • 前端之React实战:创建跨平台的项目架构
  • 我是如何设计 Upload 上传组件的
  • 我有几个粽子,和一个故事
  • 一些css基础学习笔记
  • 鱼骨图 - 如何绘制?
  • $L^p$ 调和函数恒为零
  • (¥1011)-(一千零一拾一元整)输出
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)mysql_MYSQL(三)
  • (四) Graphivz 颜色选择
  • (转)http协议
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .php文件都打不开,打不开php文件怎么办
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @EventListener注解使用说明
  • @html.ActionLink的几种参数格式
  • [ C++ ] STL---string类的使用指南
  • [\u4e00-\u9fa5] //匹配中文字符
  • [20150321]索引空块的问题.txt
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略