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实现Socket服务器的代码
Apr 03 PHP
PHP 函数语法介绍一
Jun 14 PHP
深入分析php之面向对象
May 15 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 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
十天学会php之第十天
2006/10/09 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
Javascript this指针
2009/07/30 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
webpack多页面开发实践
2017/12/18 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python 备份程序代码实现
2017/03/06 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
python实现视频读取和转化图片
2019/12/10 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
工程业务员工作职责
2013/12/07 职场文书
幼师自我鉴定
2014/02/01 职场文书
工作违纪检讨书
2014/02/17 职场文书
运动会演讲稿50字
2014/08/25 职场文书
职工年度考核评语
2014/12/31 职场文书
专职安全员岗位职责
2015/04/11 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
如何Tomcat中使用ipv6地址
2022/05/06 Servers
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL