什么是php超全局变量数组

什么是PHP超全局变量数组?

超全局变量数组是PHP中一组预定义的变量,它们在任何作用域中都可以访问,无需使用`global`声明。这些变量在请求过程中始终可用,并且可以提供有关服务器、请求、会话和环境的宝贵信息。

超全局变量列表

PHP中有六个超全局变量数组:

`$GLOBALS`

`$_SERVER`

`$_REQUEST`

`$_POST`

`$_GET`

`$_FILES`

`$_ENV`

`$_COOKIE`

`$_SESSION`

1.$GLOBALS

`$GLOBALS`数组包含所有全局符号表中的变量,它是一个容易出错的变量,不建议使用。使用`global`关键字显式声明所需的全局变量是一个更好的实践。

2.$_SERVER

`$_SERVER`数组包含有关服务器环境的信息,例如:

服务器软件名称(`SERVER_SOFTWARE`)

服务器主机名(`SERVER_NAME`)

正在请求的脚本的路径(`SCRIPT_NAME`)

请求方法(`REQUEST_METHOD`)

HTTP头部(`HTTP_`)

示例:

php

echo$_SERVER['HTTP_HOST'];//输出请求的主机名

echo$_SERVER['REMOTE_ADDR'];//输出客户端的IP地址

3.$_REQUEST

`$_REQUEST`数组包含来自所有来源(GET、POST、Cookie)的请求数据。对于表单处理和接收用户输入非常有用。

示例:

php

$name=$_REQUEST['name'];//获取通过GET或POST提交的"name"字段

4.$_POST

`$_POST`数组仅包含通过HTTPPOST方法提交的请求数据。

示例:

php

$email=$_POST['email'];//获取通过POST提交的"email"字段

5.$_GET

`$_GET`数组仅包含通过HTTPGET方法提交的请求数据。

示例:

php

$page=$_GET['page'];//获取通过URL查询字符串提交的"page"参数

6.$_FILES

`$_FILES`数组包含有关上传文件的信息,例如名称、大小和类型。

示例:

php

$file=$_FILES['avatar'];//获取上传的"avatar"文件

echo$file['name'];//输出上传的文件名

7.$_ENV

`$_ENV`数组包含有关服务器环境的变量,例如:

操作系统(`OS`)

用户名(`USER`)

当前工作目录(`PWD`)

示例:

php

echo$_ENV['PATH'];//输出环境路径

echo$_ENV['HOME'];//输出用户的主目录

8.$_COOKIE

`$_COOKIE`数组包含客户端发送的HTTPCookie。

示例:

php

$username=$_COOKIE['username'];//获取名为"username"的cookie

9.$_SESSION

`$_SESSION`数组用于存储会话数据,它在用户会话期间保持不变。

示例:

php

$_SESSION['cart']=['apple','banana'];//将购物篮信息存储在会话中

最佳实践

避免使用`$GLOBALS`数组。

使用`global`关键字显式声明全局变量。

正确验证和过滤用户输入,以防止跨站点脚本(XSS)漏洞。

启用会话cookie并正确配置会话安全性设置。

使用`$_ENV`变量时要小心,因为它们可能因服务器配置而异。

超全局变量数组是PHP中强大的工具,用于访问有关服务器、请求、会话和环境的信息。正确理解和使用这些变量对于构建健壮和安全的Web应用程序至关重要。