在写上下文中不能使用方法返回值

时间:2012-09-15 18:27:35

标签: php codeigniter uri user-data

我正在使用codeigniter并尝试在控制器发生更改时创建if语句。我现在所拥有的错误。

if (isset($this->session->userdata('lastUrl')) && $this->session->userdata('lastUrl') != $this->router->class) {
     echo 'new controller';
}

$this->session->set_userdata('lastUrl', $this->router->class);

此代码位于控制器的构造函数中,因此它将在每个页面上运行。

2 个答案:

答案 0 :(得分:3)

您可以通过method_exists()功能

进行检查
if (method_exists($this->session->userdata('lastUrl')) && $this->session->userdata('lastUrl') != $this->router->class) {
     echo 'new controller';
}

答案 1 :(得分:2)

isset是一种特殊的语言结构,只能用于变量或数组键,而不能用于方法。这应具有相同的功能:

$this->session->userdata('lastUrl') !== null && ...