2015-10-20 2 views
2

В моем проекте я использовал следующий способ хранения и извлечения данных из сеанса.проблема cakephp в получении данных сеанса

Для записи данных:

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

Для чтения данных:

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

И он все еще работает отлично на сервере. 2 дня назад я переместил свой код на другой живой сервер. Сейчас этот сервер показывает фатальную ошибку при $this->Session->read('data')['title']; т.е. неожиданным []

Тогда я Google и обнаружил, что там какой-то другой способ, чтобы получить индекс Е.Г.

$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]; 
Смежные вопросы