2015-10-20 54 views
2

在我的項目中,我使用以下方式來存儲和從會話中獲取數據。cakephp問題在獲取會話數據

要寫入數據:

$this->Session->write('data', array('title'=>'Abc')); 

讀取數據:

$this->Session->read('data')['title']; 

它仍然是在活的服務器工作正常。 2天前,我將我的代碼轉移到其他一些活動服務器上。現在,這個服務器顯示致命的錯誤在 $this->Session->read('data')['title'];即意外[]

然後我谷歌和發現,如果$this->Session->read('data')['title']是有一些其他的方式來獲得指標如

$this->Session->read('data.title'); 

錯誤的方式,那麼如何仍然在我的舊服務器上工作。

在此先感謝。

+2

請註明您的CakePHP和PHP版本。 –

+0

這聽起來像是PHP版本的差異。你目前使用的是什麼版本,舊服務器上有什麼版本? – drmonkeyninja

+1

新的服務器php版本是:5.3.32.0和舊的服務器的:5.4.162.0 你認爲它是因爲版本? –

回答

0

[]PHP 5.4 這是一個簡短的語法支持並PHP < 5.4它不會工作。

來源: PHP Difference between array() and []




下面是你在找什麼。我匆匆發佈了以上內容。

從PHP 5.4開始,可以直接對函數或方法調用的結果進行數組解引用。之前只能使用臨時變量。

Source

例子:

function getArray() { 
    return array(1, 2, 3); 
} 

// on PHP 5.4 
$secondElement = getArray()[1]; 

// previously 
$tmp = getArray(); 
$secondElement = $tmp[1];