PHP 超全局变量详解
时间:2026-10-9 07:09 作者:emer 分类: 无
PHP 超全局变量详解
PHP 超全局变量在所有作用域都能用,写接口和表单开发天天用到。
1. 什么是超全局变量
超全局变量是 PHP 预定义的数组变量,不需要 global 声明,在函数、类、文件里都能直接访问。
2. 常用超全局变量
1)$_GET
获取 URL 查询参数。
// 访问 index.php?id=1&name=张三
$id = $_GET['id']; // 1
$name = $_GET['name']; // 张三
2)$_POST
获取表单 POST 提交的数据。
// 表单 method="post"
$username = $_POST['username'];
$password = $_POST['password'];
3)$_REQUEST
同时获取 GET、POST、COOKIE 数据。
$id = $_REQUEST['id'];
// 不推荐,安全隐患大
4)$_SESSION
会话数据,跨页面共享。
session_start();
$_SESSION['user_id'] = 1;
$_SESSION['username'] = '张三';
5)$_COOKIE
获取客户端 Cookie。
$token = $_COOKIE['token'];
6)$_SERVER
服务器和执行环境信息。
// 获取请求方法
$method = $_SERVER['REQUEST_METHOD'];
// 获取当前URL
$uri = $_SERVER['REQUEST_URI'];
// 获取客户端IP
$ip = $_SERVER['REMOTE_ADDR'];
// 获取HTTP头
$host = $_SERVER['HTTP_HOST'];
3. 文件上传变量
$_FILES
处理文件上传。
// 表单 enctype="multipart/form-data"
$file = $_FILES['upload'];
$name = $file['name']; // 文件名
$tmp = $file['tmp_name']; // 临时路径
$size = $file['size']; // 文件大小
$error = $file['error']; // 错误码
4. 注意事项
- 安全问题: 所有超全局变量都不可信,必须做过滤和验证
- isset 判断: 取值前用 isset 判断是否存在,避免报错
- 类型转换: 数字参数记得转 int
- 不要用 $_REQUEST: 安全隐患大,明确用 GET 还是 POST
5. 安全取值示例
// 安全获取GET参数
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
// 安全获取POST参数
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
// 判断请求方法
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 处理POST请求
}
总结
PHP 超全局变量要点:
- $_GET:获取 URL 参数
- $_POST:获取表单数据
- $_SESSION:会话数据
- $_COOKIE:客户端 Cookie
- $_SERVER:服务器信息
- $_FILES:文件上传
- 所有外部输入都要过滤验证,不能直接用
- 取值前先 isset 判断
做 PHP 开发,超全局变量是基础中的基础。