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 方法传递给当前脚本的变量的数组。
    • 常用于表单数据的提交。
    • 示例:如果表单包含 name 和 age 字段,则 $_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超级全局变量

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

相关推荐
4SAPI2 小时前
多国产模型混合调度与企业级治理生产选型指南:4SAPI、硅基流动与 OpenRouter 的架构权衡
大数据·人工智能·架构·php
产品经理爱开发4 小时前
AxureShow(艾可秀)国内通用的html托管
前端·人工智能·html·ai编程
天若有情6734 小时前
【前端趣味项目】把防抖玩出新花样!一个带隐藏后门的毫秒级“读秒挑战”
前端·javascript·html·防抖·外挂·趣味demo·读秒挑战
tommyjiatong5 小时前
资安底座连环雷:从 PHP2Shell 到 Node2Shell
node.js·php
青峰讲运维6 小时前
OpenStack Heat 编排:用模板一键交付云业务,告别手动点页面
开发语言·php·openstack
协作者6 小时前
PHP根本影响不到Domino
php·oidc·domino·notes·inotes·verse
神仙别闹7 小时前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php
dingzd957 小时前
TikTok账号登录态失效的Cookie字段排查路径
开发语言·php·跨境电商·营销策略
2501_915909068 小时前
Windows 上用 VS Code 调试 iPhone 真机 App,KXBuild 断点、崩溃定位实操
ide·windows·vscode·ios·iphone·个人开发·敏捷流程
vipxieliang8 小时前
Laravel 框架内核:请求生命周期、IoC 容器与中间件管道(附 ThinkPHP 选型对比)
php