当前位置: 首页 > 编程笔记 >

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

戚建德
2023-03-14
本文向大家介绍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 超级全局变量,PHP $GLOBALS,实例,PHP $_SERVER,实例,PHP $_REQUEST,实例,PHP $_POST,实例,PHP $_GET,实例超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。 PHP 超级全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。 PHP 超级全局变量列表: $GLO

  • 本文向大家介绍PHP 超全局变量,包括了PHP 超全局变量的使用技巧和注意事项,需要的朋友参考一下 示例 超全局变量由PHP定义,并且始终可以在没有global关键字的任何地方使用。            

  • 本文向大家介绍Python全局变量与局部变量区别及用法分析,包括了Python全局变量与局部变量区别及用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下: 对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。 定义: 全局变量:在模块内、在所有函数的外面、在class外面

  • 一般来讲,在 Swoole 项目中,你是无法使用 $_GET、$_POST等超全局变量的。 自 imi v1.0.15 版本开始支持,启用方法: 在项目配置文件的 beans 中加入: [ 'SuperGlobals' => [ 'enable' => true, ], ]

  • 本文向大家介绍Python局部变量与全局变量区别原理解析,包括了Python局部变量与全局变量区别原理解析的使用技巧和注意事项,需要的朋友参考一下 1、局部变量 输出: before change: Yang Li after change 你好 在外面看看name改了么? Yang Li 2、全局变量 输出: 3、nonlocal 全局与局部变量 在子程序中定义的变量称为局部变量,在程序的一开始

  • 本文向大家介绍static全局变量与普通的全局变量有什么区别?相关面试题,主要包含被问及static全局变量与普通的全局变量有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 static全局变量只初使化一次,防止在其他文件单元中被引用; 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式