后端:

1,赋值

  1. // 赋值(当前作用域)
  2. Session::set('name','thinkphp');
  3. // 赋值(think作用域)
  4. Session::set('name','thinkphp','think');

2,判断是否存在

// 判断(当前作用域)是否赋值
Session::has('name');
// 判断think作用域下面是否赋值
Session::has('name','think');

3,取值

// 取值(当前作用域)
Session::get('name');
// 取值think作用域
Session::get('name','think');

如果name的值不存在,返回null

4,删除🔺

// 删除(当前作用域)
Session::delete('name');
// 删除think作用域下面的值
Session::delete('name','think');

5,指定作用域

// 指定当前作用域
Session::prefix('think');

7,取值并删除🔺

// 取值并删除
Session::pull('name');

8,清空

// 清除session(当前作用域)
Session::clear();
// 清除think作用域
Session::clear('think');

前端:

1,助手函数赋值

session('username', 'thinkphp');

2,模板中取值

{$Request.session.username}

3,删除指定🔺

session('username', null);

4,清除所有session🔺

session(null);

url传session参数的写法:

{:url('admin/edit',array('id'=>$Request.session.id))}

设置过期时间

thinkphp5自带的代码发现没有设置session过期时间的地方,只是在\thinkphp\library\think\Session.php有

if (isset($config['expire'])) {
     ini_set('session.gc_maxlifetime', $config['expire']);
     ini_set('session.cookie_lifetime', $config['expire']);
}

其中:

session.gc_maxlifetime:session的有效生存时间,过了这个时间session将进入销毁队列。

session.cookie_lifetime:值为0代表关闭浏览器,保存在客户端的sessionid将立即失效。

它读取的配置值expire是在config.php中设置的

只有在config.php文件里面设置全局session过期时间。

tp5Session - 图1