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超级全局变量

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

相关推荐
ZC跨境爬虫27 分钟前
海南大学交友平台开发实战day7(实现核心匹配算法+解决JSON请求报错问题)
前端·python·算法·html·json
小宋加油啊1 小时前
Mac vscode安装PCL
ide·vscode·macos
lingggggaaaa2 小时前
PHP模型开发篇&MVC层&动态调试未授权&脆弱鉴权&未引用&错误逻辑
开发语言·安全·web安全·网络安全·php·mvc·代码审计
a1117763 小时前
变电站数字孪生大屏ThreeJS 开源项目
前端·信息可视化·开源·html
꯭爿꯭巎꯭3 小时前
visual studio code (vscode)下载
ide·vscode·编辑器
BingoGo3 小时前
Laravel13 + Vue3 的免费可商用 PHP 管理后台 CatchAdmin V5.2.0 发布
后端·php·laravel
PieroPc3 小时前
销售单据 OCR 处理中心,Fastapi+Html, MiMo-V2-Omni、豆包怎理图片转Json数据
html·ocr·fastapi
王琦03183 小时前
第十章 管理Linux的联网
linux·服务器·php
农村小镇哥3 小时前
Html的字体+字符编码+图片标签
chrome·笔记·html
摇滚侠3 小时前
HTML CSS 演示小米 logo 的变化 border-radius 属性设置圆角
前端·css·html