Session 作用域的意义

使用ThinkPHP 做项目, 不能理解 Session 作用域的 意义,
为什么自己设定这么一个作用于, session 不都是在服务端自己调用吗

https://www.kancloud.cn/manua...

阅读 4.1k
2 个回答

看源码呗

/**
 * session设置
 * @access public
 * @param  string        $name session名称
 * @param  mixed         $value session值
 * @param  string|null   $prefix 作用域(前缀)
 * @return void
 */
public function set($name, $value, $prefix = null)
{
    $this->lock();
    empty($this->init) && $this->boot();
    $prefix = !is_null($prefix) ? $prefix : $this->prefix;
    if (strpos($name, '.')) {
        // 二维数组赋值
        list($name1, $name2) = explode('.', $name);
        if ($prefix) {
            $_SESSION[$prefix][$name1][$name2] = $value;
        } else {
            $_SESSION[$name1][$name2] = $value;
        }
    } elseif ($prefix) {
        $_SESSION[$prefix][$name] = $value;
    } else {
        $_SESSION[$name] = $value;
    }
    $this->unlock();
}

$_SESSION[$prefix][$name] = $value; 可以看到,作用域的作用其实就是多加一层而已

Session.php

多模块下用的

// 后台
Session::set('login_user', 'xxxx', 'admin');
// 某模块
Session::set('login_user', 'xxx', 'some');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题