• 技术文章 >后端开发 >php教程

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

    墨辰丷墨辰丷2018-06-04 10:48:55原创758
    这篇文章主要介绍了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实现获取一定范围内取N个不重复的随机数的方法

    php使用number_format函数截取小数的方法及实例分析

    php中关于长度计算容易混淆的问题简单分析

    以上就是PHP全局变量与超级全局变量的区别详细分析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 超级 变量
    上一篇:PHP递归实现层级树状展开的方法 下一篇:PHP计算数组中值的和与乘积的方法及实例分析
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php添加代码,本机通过下传至服务器就不能添加数据 • 如何不同的form之间传输数值 • 装配及配置eaccelerator-0.9.5加速PHP-5.2.1 • 瞅discuz发现了php的一个过瘾的函数调用方法 • mysql 正则查询信息,该如何处理
    1/1

    PHP中文网