# Session
## 概述
可以直接使用`lib\facade\Session`类操作`Session`。
## Session初始化
Session会在第一次调用Session类的时候按照`session.php`配置的参数自动初始化:
~~~
return [
'prefix' => 'app',
],
~~~
如果我们使用上述的session配置参数的话,无需任何操作就可以直接调用Session类的相关方法,例如:
~~~
Session::set('name','limoing');
Session::get('name');
~~~
## 设置参数
session设置参数包括:
| 参数 | 描述 |
| --- | --- |
| prefix | session前缀 |
## 基础用法
赋值
~~~
// 赋值(当前作用域)
Session::set('name','liming');
// 赋值app作用域
Session::set('name','liming','app');
~~~
判断是否存在
~~~
// 判断(当前作用域)是否赋值
Session::has('name');
// 判断app作用域下面是否赋值
Session::has('name','app');
~~~
取值
~~~
// 取值(当前作用域)
Session::get('name');
// 取值app作用域
Session::get('name','app');
~~~
如果name的值不存在,返回`null`。
删除
~~~
// 删除(当前作用域)
Session::delete('name');
// 删除app作用域下面的值
Session::delete('name','app');
~~~
指定作用域
~~~
// 指定当前作用域
Session::prefix('app');
~~~
取值并删除
~~~
// 取值并删除
Session::pull('name');
~~~
如果name的值不存在,返回`Null`。
清空
~~~
// 清除session(当前作用域)
Session::clear();
// 清除app作用域
Session::clear('app');
~~~
## 二级数组
支持session的二维数组操作,例如:
~~~
// 赋值(当前作用域)
Session::set('name.item','lim');
// 判断(当前作用域)是否赋值
Session::has('name.item');
// 取值(当前作用域)
Session::get('name.item');
// 删除(当前作用域)
Session::delete('name.item');
~~~
##追加到数组
~~~
// 赋值(当前作用域)
Session::push('user',['age' => 18]);
~~~