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 归并排序 数组交集
May 10 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
PHP简单实现上一页下一页功能示例
Sep 14 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
php语法检查的方法总结
Jan 21 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结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
分享3个php获取日历的函数
2015/09/25 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
使用JavaScript破解web
2018/09/28 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
python中sets模块的用法实例
2014/09/30 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
人事部经理岗位职责
2014/03/07 职场文书
担保书怎么写
2014/04/01 职场文书
装修协议书范本
2014/04/21 职场文书
实习指导老师评语
2014/04/26 职场文书
公司委托书范本5篇
2014/09/20 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
bose降噪耳机音能消除人声吗
2022/04/19 数码科技