Php codeigniter会话在执行之前已存在

Php codeigniter会话在执行之前已存在,php,codeigniter,sessionid,Php,Codeigniter,Sessionid,当我的项目第一次运行时,以下功能起作用: public function index() { $this->session->set_userdata(array('value'=> $this->session->session_id)); $ses_id=$this->session->userdata('value'); $info['session_id']=$ses_id; $this->load

当我的项目第一次运行时,以下功能起作用:

public function index()
{
    $this->session->set_userdata(array('value'=> $this->session->session_id));

    $ses_id=$this->session->userdata('value');  

    $info['session_id']=$ses_id;

    $this->load->view('index',$info);
}
现在,如果我用
echo$ses\u id
打印$ses\u id,那么它会显示会话id。但是如果我省略了函数体中的第一行,函数就会变成如下代码:

public function index()
{   
    echo $ses_id=$this->session->userdata('value'); 

    $info['session_id']=$ses_id;

    $this->load->view('index',$info);
}

然后,它还显示会话id,尽管它还没有被获取。在我获取会话id之前,出现了什么问题?

您对会话的概念不清楚。所以首先你们需要学习和理解这个课程是如何运作的。请检查此项以便更好地理解

JFI,在codeigniter中,会话数据数组默认包含4项:

  • 会话号
  • ip地址
  • 用户代理
  • 最后的活动

  • 一旦您在会话中存储了值,并且省略了第一行,它肯定会在$sess_id中显示值,b/c会话值已存储在浏览器中,并且在您清除/销毁/终止会话之前它不会被删除。

    您似乎误解了
    会话
    。通常,它将一直存储到您关闭浏览器或过期。