PHP超级全局变量

PHP 中的超级全局变量(Superglobals)是 PHP 4.1.0 引入的一个特性,它们在脚本的全部作用域中都是可用的。这意味着一旦一个脚本被载入,这些变量就可以在脚本的任何地方被访问,无论是在函数内部还是外部。PHP 提供了几个预定义的超级全局变量,用于收集来自不同来源的信息,如用户输入、服务器信息、会话信息等。

常见的 PHP 超级全局变量

  1. $GLOBALS

    • $GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键(key)。
    • 示例:$GLOBALS['variableName'] 访问全局变量 variableName
  2. $_SERVER

    • $_SERVER 是一个包含了诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。这个数组由 web 服务器创建。
    • 示例:$_SERVER['SERVER_NAME'] 获取当前运行脚本所在服务器的主机名。
  3. $_GET

    • $_GET 通过 URL 参数传递给当前脚本的变量的数组。
    • 示例:如果 URL 是 http://example.com/test.php?name=John&age=30,则 $_GET['name'] 会是 John$_GET['age'] 会是 30
  4. $_POST

    • $_POST 通过 HTTP POST 方法传递给当前脚本的变量的数组。
    • 常用于表单数据的提交。
    • 示例:如果表单包含 nameage 字段,则 $_POST['name']$_POST['age'] 将分别包含这些字段的值。
  5. $_REQUEST

    • $_REQUEST 包含了 $_GET$_POST$_COOKIE 的内容。它可以用来收集通过 GET 和 POST 方法发送的数据以及通过 COOKIE 发送的数据。
    • 注意:出于安全考虑,不建议在生产环境中使用 $_REQUEST,因为它可能会暴露不应该通过 GET 发送的敏感信息。
  6. $_SESSION

    • $_SESSION 变量用于存储关于用户会话(session)的信息。
    • 会话变量存储在服务器上,通过 PHP 的 session 管理来跟踪用户的会话。
    • 示例:$_SESSION['username'] = 'JohnDoe'; 存储用户名到会话中。
  7. $_FILES

    • $_FILES 是一个包含了通过 HTTP POST 方法上传的文件的数组。
    • 数组的每个元素都是一个关联数组,包含了文件的名称、类型、大小、临时文件名以及是否上传成功等信息。
    • 示例:$_FILES['file']['name'] 获取上传文件的原始名称。
  8. $_COOKIE

    • $_COOKIE 是一个包含了通过 HTTP Cookies 发送到脚本的变量的数组。
    • 示例:如果有一个名为 user 的 cookie,则 $_COOKIE['user'] 会包含该 cookie 的值。
  9. $_ENV

    • $_ENV 是一个包含了服务器端环境变量的数组。这些变量是环境配置的一部分。
    • 注意:不是所有的服务器都会设置这些变量,或者服务器管理员可能会阻止访问某些环境变量。
  10. $_HTTP_RAW_POST_DATA

    • $_HTTP_RAW_POST_DATA 包含了原始的 POST 数据。默认情况下,此特性在 PHP 5.6.0 中已废弃,并在 PHP 7.0.0 中移除。
    • 如果需要处理原始 POST 数据,应考虑使用 php://input 流或其他方法。

使用超级全局变量的注意事项

  • 安全性 :特别是处理 $_GET$_POST$_COOKIE 时,要注意验证和清理输入数据,以防止跨站脚本(XSS)攻击和其他安全漏洞。
  • 性能:虽然超级全局变量很方便,但过度使用或不当使用可能会对性能产生负面影响。
  • 作用域:超级全局变量在脚本的任何地方都是可用的,但应注意不要在不适当的地方(如全局命名空间中)修改它们,以避免意外的副作用。

原文链接: PHP超级全局变量

红客社区:客户端下载 - 红客网络编程与渗透技术

相关推荐
百锦再2 小时前
五种常用的web加密算法
前端·算法·前端框架·web·加密·机密
_考不上研究生不改名2 小时前
【完美解决】VSCode连接HPC节点,已配置密钥却还是提示需要输入密码
linux·服务器·vscode·远程连接·hpc·超算集群
牧码岛6 小时前
Web前端之Vue+Element实现表格动态不同列合并多行、localeCompare、forEach、table、push、sort、Map
前端·javascript·elementui·vue·web·web前端
老K(郭云开)6 小时前
如何让eDrawings html文件在Chrome浏览器上展示——allWebPlugin中间件扩展
前端·javascript·chrome·中间件·edge·html
高山莫衣6 小时前
VSCode中Marp插件
ide·vscode·编辑器
hello_simon10 小时前
免费在线文档工具,在线PDF添加空白页,免费在任意位置插入空白页,多样化的文件处理
pdf·html·excel·pdf转html·excel转pdf格式
集成显卡11 小时前
AI | 字节跳动 AI 中文IDE编辑器 Trae 初体验
ide·人工智能·vscode·编辑器
michaelzhouh12 小时前
php调用大模型应用接口实现流式输出以及数据过滤
开发语言·php·php调用大模型api流式输出
sszdlbw12 小时前
BUUCTF-web刷题篇(19)
web安全·web·安全漏洞·buuctf
阿里云云原生12 小时前
如何使用通义灵码完成PHP单元测试 - AI辅助开发教程
php