• 整理超级全局变量与全局变量的知识


    全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似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保存的是用户定义的全局变量。

    2001.2.28 理解
    之前对超级全局变量理解不对:超级全局变量在所有脚本下有效,这样表述导致了理解上细微的偏差。如果在所有脚本下有效,那么是不是$GLOBALS保存的超级全局变量,在一个php文件中定义后,在另一个文件中还能获取到。
    显然不会是这样的。估计受到了$_POST的影响,因为它好像所有人都能去访问到。没有意识到,你只能访问到当前处理到的$_POST数据。不可能两个人同时提交留言,php文件获取到post的数据怎么区别。这个数据只能是当前线程

    的。最后,超级全局变量可以这样看,因为它是相对于全局变量而言的。比全局变量更一个层次,全局变量不能作用到函数内部。它就解决了这个问题。在其他语言中,全局变量都能作用到函数内部。php语言设计就不是这样的。
    全局变量直接在函数内使用,那么总得提供一种变量能直接使用的吧。就出来了超级全局变量的概念。
    
  • 相关阅读:
    结对编程项目作业3
    团队编程项目作业1-成员简介及分工
    团队编程项目作业1-需求分析
    结对编程项目作业1
    20171123-构建之法:现代软件工程-阅读笔记
    课后作业-阅读任务-阅读提问-4
    软件工程课程总结
    结对编程项目五子棋-结对项目总结
    课后作业-阅读任务-阅读笔记-1
    结对编程项目作业3
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/1967994.html
Copyright © 2020-2023  润新知