PHP全局变量与超级全局变量区别分析


Posted in PHP onApril 01, 2016

本文分析了PHP全局变量与超级全局变量区别。分享给大家供大家参考,具体如下:

全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似global $a;

超全局变量作用域在所有脚本都有效。所以,在函数可直接使用。比如 $_GET,$_SERVER都是超全局变量。除$_GET,$_POST,$_SERVER,$_COOKIE等之外的超全局变量保存在$GLOBALS数组中。注意,不要误写成$_GLOBALS。有点受到$_POST的影响了。

$GLOBAL是一个特殊的php自定义的数组。超级全局变量。跟$_SERVER一样,都属于超全局变量。

在手册中搜索$GLOBALS 就能查询超全局变量的具体说明和使用方法

变量名就是该数组的索引。 说明:使用$GLOBALS['a']定义一个超全局变量后。可以使用$a直接访问

手册中这样解释的:

$GLOBALS — References all variables available in global scope 引用所有在全局范围内的可用的变量

结合例子这样理解:假如在函数外面定义了一个变量$a。那么在函数中可用通过$GLOBALS['a']获取到这个变量的值。所以,$GLOBALS数组里面就是:用户定义的所有全局变量。

为什么称它为超级全局变量。对比$_POST,在函数里面可用直接使用。根本不需要使用global语句了。所以$GLOBALS也是这样的原理,只是$_POST保存是post方式传递的变量。$GLOBALS保存的是用户定义的全局变量。

个人理解:

之前对超级全局变量理解不对:超级全局变量在所有脚本下有效,这样表述导致了理解上细微的偏差。如果在所有脚本下有效,那么是不是$GLOBALS保存的超级全局变量,在一个php文件中定义后,在另一个文件中还能获取到。

显然不会是这样的。估计受到了$_POST的影响,因为它好像所有人都能去访问到。没有意识到,你只能访问到当前处理到的$_POST数据。不可能两个人同时提交留言,php文件获取到post的数据怎么区别。这个数据只能是当前线程的。最后,超级全局变量可以这样看,因为它是相对于全局变量而言的。比全局变量更一个层次,全局变量不能作用到函数内部。它就解决了这个问题。在其他语言中,全局变量都能作用到函数内部。php语言设计就不是这样的。

全局变量直接在函数内使用,那么总得提供一种变量能直接使用的吧。就出来了超级全局变量的概念。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
发挥语言的威力--融合PHP与ASP
Oct 09 PHP
简单的过滤字符串中的HTML标记
Dec 25 PHP
服务器web工具 php环境下
Dec 29 PHP
基于xcache的配置与使用详解
Jun 18 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
smarty模板引擎中自定义函数的方法
Jan 22 PHP
PHP连接操作access数据库实例
Mar 30 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
Dec 10 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
如何运行/调试你的PHP代码
Oct 23 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 #PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 #PHP
Zend Studio使用技巧两则
Apr 01 #PHP
PHP数学运算与数据处理实例分析
Apr 01 #PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 #PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 #PHP
php获取本机真实IP地址实例代码
Mar 31 #PHP
You might like
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php下载文件的代码示例
2012/06/29 PHP
php长字符串定义方法
2012/07/12 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
php中opendir函数用法实例
2014/11/15 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
一段多浏览器的"复制到剪贴板"javascript代码
2007/03/27 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python SQLite3简介
2018/02/22 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Internet主要有哪些网络群组成
2015/12/24 面试题
行政管理专业推荐信
2013/11/02 职场文书
财务与信息服务专业推荐信
2013/11/28 职场文书
安全检查管理制度
2014/02/02 职场文书
临床专业自荐信
2014/06/22 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
小学优秀班主任材料
2014/12/17 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
课题研究阶段性总结
2015/08/13 职场文书