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

 更新时间:2016年04月01日 11:47:29   作者:phper  
这篇文章主要介绍了PHP全局变量与超级全局变量区别,较为详细的分析讲述了PHP全局变量与超级全局变量的概念,用法与使用区别,需要的朋友可以参考下

本文分析了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网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • php简单smarty入门程序实例

    php简单smarty入门程序实例

    这篇文章主要介绍了php简单smarty入门程序,实例分析了smarty模板的配置与使用技巧,需要的朋友可以参考下
    2015-06-06
  • PHP使用PDO操作数据库的乱码问题解决方法

    PHP使用PDO操作数据库的乱码问题解决方法

    这篇文章主要介绍了PHP使用PDO操作数据库的乱码问题解决方法,实例分析了编码设置及属性设置解决乱码问题的实现技巧,需要的朋友可以参考下
    2016-04-04
  • PHP中散列密码的安全性分析

    PHP中散列密码的安全性分析

    这篇文章主要介绍了PHP中散列密码的安全性,结合实例形式分析了php基本哈希函数安全性问题及相关解决方案,需要的朋友可以参考下
    2019-07-07
  • PHP之uniqid()函数用法

    PHP之uniqid()函数用法

    这篇文章主要介绍了PHP中uniqid()函数的用法,包括了函数的基本用法与应用分析,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php的一些小问题

    php的一些小问题

    这是我日常使用中的一些问题,经过baidu google大叔们的帮助学会的
    2010-07-07
  • memcached 和 mysql 主从环境下php开发代码详解

    memcached 和 mysql 主从环境下php开发代码详解

    一般的大站通常做法是 拿着内存当数据库来用(memcached). 和很好的读 写分离 备份机制 (mysql 的主从) 在这样的环境下我们怎么进行PHP开发呢。
    2010-05-05
  • php统计数组不同元素的个数的实例方法

    php统计数组不同元素的个数的实例方法

    在本篇文章里小编给大家整理的是关于php统计数组不同元素的个数的实例方法以及相关知识点,有需要的朋友们学习下。
    2019-09-09
  • PHP面向对象概念

    PHP面向对象概念

    要详细了解PHP OO最好看PHP手册。大家都知道的部分就不说了,这里只记下容易忘记的部分
    2011-11-11
  • PHPMailer发送邮件功能实现流程

    PHPMailer发送邮件功能实现流程

    随着企业化的管理越来越规范,各种项目管理系统中,都需要加入到邮件实时通知功能,所以在项目中如何整合发邮件功能,其实也是很重要的一点。本文为大家介绍了PHP实现邮件实时通知功能的示例代码,需要的可以参考一下
    2022-12-12
  • PHP中spl_autoload_register()和__autoload()区别分析

    PHP中spl_autoload_register()和__autoload()区别分析

    这篇文章主要介绍了spl_autoload_register()和__autoload()区别,需要的朋友可以参考下
    2014-05-05

最新评论