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和MySQL保存和输出图片
Oct 09 PHP
拼音码表的生成
Oct 09 PHP
php 静态变量的初始化
Nov 15 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
php对接java现实加签验签的实例
Nov 25 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
Yii框架连表查询操作示例
Sep 06 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 19 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
967 个函式
2006/10/09 PHP
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
PHP编写RESTful接口
2016/02/23 PHP
文本域中换行符的替换示例
2014/03/04 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
js实现常用排序算法
2016/08/09 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
如何用Python 加密文件
2020/09/10 Python
python破解同事的压缩包密码
2020/10/14 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
汽车检测与维修专业求职信
2013/10/30 职场文书
党员培训思想汇报
2014/01/07 职场文书
委托书怎样写
2014/08/30 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
Vue监视数据的原理详解
2022/02/24 Vue.js
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server