在我的CodeIgniter应用程序中,我在某些控制器中使用会话类(并非所有控制器),并且我在所有页面中都修复了固定的主题视图。我想在视图中使用session->setflash()
。因此,对于不使用会话的控制器,我必须检查session->flashdata()
是否已设置或可用。我尝试了以下内容:
<?php if (isset($this->session->flashdata('msg'))):;?>
它返回了以下错误:
致命错误:无法对函数调用的结果使用isset()(您 可以使用“null!== func()”而不是
当我尝试消息的建议时:
<?php if (null !== $this->session->flashdata('msg')):;?>
我收到以下错误:
致命错误:在非对象上调用成员函数flashdata() 在...
除了codeIgniter错误:
遇到严重错误:通知
消息:未定义的属性:CI_Loader :: $ session
文件名:themes / head.php
行号:44
答案 0 :(得分:3)
如果您的控制器始终加载$this->load->library('session');
然后你就可以检查if($this->session->flashdata('msg')){/*do stuff*/}
否则您可以使用method_exists()
http://php.net/manual/en/function.method-exists.php
if(method_exists('CI_Session', 'flashdata') && $this->session->flashdata('msg')){
echo $this->session->flashdata('msg');
}