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 相关文章推荐
第三节--定义一个类
Nov 16 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
php文件上传的简单实例
Oct 19 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
PHP之uniqid()函数用法
Nov 03 PHP
javascript some()函数用法详解
Nov 13 PHP
php递归创建目录的方法
Feb 02 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
PHP基本语法
Mar 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
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
js实现扫雷源代码
2020/11/27 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
Python3中的2to3转换工具使用示例
2015/06/12 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
大学生标准推荐信范文
2013/11/25 职场文书
大学生的网络创业计划书
2013/12/26 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
白酒营销策划方案
2014/08/17 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL
python编写五子棋游戏
2021/05/25 Python