php中全局数组的含义是什么

本文讲解"php中全局数组的含义是什么",希望能够解决相关问题。

PHP中全局数据的全称是超全局数组或者超全局变量,是PHP中特殊定义的数组变量;超全局数组可以在脚本中的任何地方、任何作用域内都可以访问,超全局数组变量是在全部作用域中始终可用的内置变量。

本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑

php中全局数组是什么意思

php全局数组全称“超全局数组”或“超全局变量”,是PHP中特殊定义的数组变量,之所以称为超全局数组是因为这些数组在脚本中的任何地方、任何作用域内都可以访问,如函数、类、文件等。

超全局数组变量是在全部作用域中始终可用的内置变量

PHP中的超全局数组包括以下几个:

  • $GLOBALS

一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

使用var_dump($GLOBALS)打印,就可以看出$GLOBALS是一个包含了所有的一个全局组合数组。

从 PHP 8.1.0 起,$GLOBALS 现在是全局符号表的只读副本。 也就是说,全局变量不能通过副本进行修改。 在之前的版本中,$GLOBALS 数组和 PHP 数组通常传值的行为不一样,全局变量可通过副本修改。

PHP 8.1.0 之前:

$a = 1;$globals = $GLOBALS; // 表面意义的按值复制$globals['a'] = 2;   // $GLOBALS['a'] 的值也相应修改
var_dump($a);//运行结果:
int(2)

从 PHP 8.1.0 起:

$a = 1;$globals = $GLOBALS;    //表面意义的按值复制$globals['a'] = 2;    // $GLOBALS['a'] 的值不会改变(不再修改 $a)
var_dump($a);//运行结果:
int(1)

要恢复以前的行为,请迭代其副本并将每个属性分配回 $GLOBALS:

foreach ($globals as $key => $value) {
    $GLOBALS[$key] = $value;}
  • $_SERVER

$_SERVER——服务器和执行环境信息。$_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。

  • $_GET

通过 URL 参数传递给当前脚本的变量的数组。注意:该数组不仅仅对 method 为 GET 的请求生效,而是会针对所有带 query string 的请求。

  • $_POST

预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。

当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。

从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。

  • $_REQUEST

默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。由于安全的问题,建议尽量避免使用$_REQUEST。

  • $_COOKIE

通过 HTTP Cookies 方式传递给当前脚本的变量的数组。

  • $_SESSION

当前脚本可用 SESSION 变量的数组。

  • $_FILES

通过 HTTP POST 方式上传到当前脚本的项目的数组。

  • $_ENV

通过环境方式传递给当前脚本的变量的数组。

这些变量被从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。很多是由支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表。请查看你的 Shell 文档来获取定义的环境变量列表。

其他环境变量包含了 CGI 变量,而不管 PHP 是以服务器模块还是 CGI 处理器的方式运行。

关于 "php中全局数组的含义是什么" 就介绍到此。希望多多支持编程宝库

本文讲解"php中数组的值可不可以重复",希望能够解决相关问题。数组的值可以重复。在php中,数组的键名(key)是唯一的、不可以重复存在的,但数组的键值(value)是可以重复存在的。处理重复值的方法:1、使 ...