PHP中全局变量global和$GLOBALS[]的区别分析


Posted in PHP onAugust 06, 2012

一、举例比较
例一:

<?php 
$var1 = 1; 
function test(){ 
unset($GLOBALS['var1']); 
} 
test(); 
echo $var1; 
?>

因为$var1被删除了,所以什么东西都没有打印。
例二:
<?php 
$var1 = 1; 
function test(){ 
global $var1; 
unset($var1); 
} 
test(); 
echo $var1; 
?>

意外的打印了1。证明删除的只是别名引用,其本身的值没有受到任何的改变。

二、解释
global $var其实就是&$GLOBALS['var'],调用外部变量的一个别名而已。
上面代码中的$var1和$GLOBALS['var1']是指的同一变量,而不是两个不同的变量。
PHP的全局变量和C语言有一点点不同。在C语言中,全局变量在函数中主动生效,除非被局部变量笼罩。这可能引起一些问题,有些人可能漫不经心的转变一个全局变量。PHP中全局变量在函数中应用时必须用global申明为全局。
PHP的Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。

三、结论
1.$GLOBALS['var']是外部的全局变量本身
2.global $var是外部$var的同名引用或者指针。

PHP 相关文章推荐
PHP新手上路(十)
Oct 09 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
PHP URL路由类实例
Nov 12 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
PHP实现即时输出、实时输出内容方法
May 27 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
thinkPHP简单遍历数组方法分析
May 16 PHP
PHP中Array相关函数简介
Jul 03 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
php 获取xml接口数据的处理方法
May 31 PHP
php一个找二层目录的小东东
Aug 02 #PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 #PHP
PHP服务器页面间跳转实现方法
Aug 02 #PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 #PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 #PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 #PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
Jul 31 #PHP
You might like
收音机术语解释
2021/03/01 无线电
Syphon 使用方法
2021/03/03 冲泡冲煮
动易数据转成dedecms的php程序
2007/04/07 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python开发之文件操作用法实例
2015/11/13 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
python DataFrame 取差集实例
2019/01/30 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
学年自我鉴定
2014/01/16 职场文书
英语国培研修感言
2014/02/13 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
北京爱情故事观后感
2015/06/12 职场文书
公司财务管理制度
2015/08/04 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL
Windows7下FTP搭建图文教程
2022/08/05 Servers