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与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
PHP自定义多进制的方法
Nov 03 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
医务人员自我评价
2014/01/26 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
诚信承诺书范文
2014/03/27 职场文书
承诺书的格式范文
2014/03/28 职场文书
承诺书格式范文
2014/06/03 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
公司行政管理制度范本
2015/08/05 职场文书
工作服管理制度范本
2015/08/06 职场文书