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函数
May 31 PHP
解析php DOMElement 操作xml 文档的实现代码
May 10 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
PHP实现的观察者模式实例
Jun 21 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
php操作mongoDB实例分析
2014/12/29 PHP
phpwind放自动注册方法
2006/12/02 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
Python中list初始化方法示例
2016/09/18 Python
使用python实现tcp自动重连
2017/07/02 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
上班睡觉检讨书
2014/01/09 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
2014年城管工作总结
2014/11/20 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
python井字棋游戏实现人机对战
2022/04/28 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技