codeigniter 对象上的 isset()

Pat*_*ick 4 session codeigniter object isset

我怎样才能实现类似的目标:

if (isset($this->session->flashdata('user_profile'))) {}
Run Code Online (Sandbox Code Playgroud)

没有:

Fatal error: Call to a member function flashdata() on a non-object in ...
Run Code Online (Sandbox Code Playgroud)

问题是,当该事物未设置时,它会返回错误,而不是像人们预期的那样继续。如果设置好了,一切都会顺利进行。

...

我也尝试过:

$tmp = $this->session->flashdata('user_profile');
if ($tmp) {
Run Code Online (Sandbox Code Playgroud)

但无济于事。

its*_*sme 5

你不需要isset();因为 CI 方法返回falsetrue

做就是了

 if($this->session->flashdata()){ }
Run Code Online (Sandbox Code Playgroud)

你的错误是因为你肯定没有加载会话库:

所以这样做:

   $this->load->library('session');
if($this->session->flashdata()){ }
Run Code Online (Sandbox Code Playgroud)

如果您愿意(我更喜欢),您可以自动加载会话库,在config/autoload.php文件中更改此内容:

$autoload['libraries'] = array('session');
Run Code Online (Sandbox Code Playgroud)

所以现在您不必随时加载会话库,因为 CI 会自动加载它