## 概述
可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。
## 检测变量是否设置
可以使用has方法来检测一个变量参数是否设置,如下:
~~~
Request::has('id','get');
Request::has('name','post');
~~~
变量检测可以支持所有支持的系统变量。
## 变量获取
变量获取使用\PKCore\Request类的如下方法及参数:
> 变量类型方法(‘变量名’,‘默认值’)
变量类型方法包括:
| 方法 | 描述 |
| --- | --- |
| param | 获取当前请求的变量 |
| get | 获取 $_GET 变量 |
| post | 获取 $_POST 变量 |
| put | 获取 PUT 变量 |
| delete | 获取 DELETE 变量 |
| session | 获取 $_SESSION 变量 |
| cookie | 获取 $_COOKIE 变量 |
| request | 获取 $_REQUEST 变量 |
| server | 获取 $_SERVER 变量 |
| env | 获取 $_ENV 变量 |
| route | 获取 路由(包括PATHINFO) 变量 |
| file | 获取 $_FILES 变量 |
## 获取PARAM变量
PARAM变量是框架提供的用于自动识别GET、POST或者PUT请求的一种变量获取方式,是系统推荐的获取请求参数的方法,用法如下:
~~~
// 获取当前请求的name变量
Request::param('name');
// 获取当前请求的所有变量
Request::param();
// 获取当前请求的所有变量(原始数据)
Request::param(false);
// 获取当前请求的所有变量(包含上传文件)
Request::param(true);
~~~
> param方法会把当前请求类型的参数和PATH_INFO变量以及GET请求合并。
## 获取GET变量
~~~
// 获取某个get变量
Request::get('id');
// 获取get变量
Request::get('name');
// 获取所有的get变量
Request::get();
~~~
## 获取POST变量
~~~
// 获取某个post变量
Request::post('name');
// 获取经过过滤的全部post变量
Request::post();
~~~
## 获取PUT变量
~~~
// 获取某个put变量
Request::put('name');
// 获取全部的put变量
Request::put();
~~~
## 获取REQUEST变量
~~~
// 获取某个request变量
Request::request('id');
// 获取全部的request变量
Request::request();
~~~
## 获取SERVER变量
~~~
// 获取某个server变量
Request::server('PHP_SELF');
// 获取全部的server变量
Request::server();
~~~
## 获取SESSION变量
~~~
// 获取某个session变量
Request::session('user_id');
// 获取全部的session变量
Request::session();
~~~
## 获取Cookie变量
~~~
// 获取某个cookie变量
Request::cookie('user_id');
// 获取全部的cookie变量
Request::cookie();
~~~