2012-09-15 66 views
3

我正在使用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); 

此代碼位於控制器的構造函數中,因此它將在每個頁面上運行。

+0

重複http://stackoverflow.com/questions/1075534/cant-use-method-return-value的檢查了這寫在上下文中,但沒有收到密切的投票。 –

回答

2

isset是一種特殊的語言結構,只能用於變量或數組鍵,而不能用於方法。這應該具有相同的功能:

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

是的,就是這樣。謝啦。我覺得很愚蠢。 –

3

您可以通過method_exists()功能

if (method_exists($this->session->userdata('lastUrl')) && $this->session->userdata('lastUrl') != $this->router->class) { 
    echo 'new controller'; 
} 
相關問題