# 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]);
~~~