Подтвердить что ты не робот

Доступ к переменной массива в сеансе (CodeIgniter)

У меня есть массив, называемый config. Я пытаюсь выполнить эхо переменную из массива в сеансе.

Я пробовал:

echo $this->session->userdata('config['item']'); 

но это не сработает. Что не так с моим синтаксисом здесь? У меня print_r'd мой сеанс, и элементы находятся в массиве config. Я также пробовал:

echo $this->session->userdata("config['item']");

На этот раз я не получаю ошибок, но нет данных.

4b9b3361

Ответ 1

Если config - массив. И item - это строковое имя того, что вы хотите получить из config, а затем

echo $this->session->userdata($config['item']);

или

echo $_SESSION[$config['item']];

Если config - это массив внутри сеанса, вы должны сначала его получить.

$tmp = $this->session->userdata('config');
echo $tmp['item'];

или

echo $_SESSION['config']['item'] 

Извините за мой английский.

Ответ 2

Если вы хотите использовать массив сеансов, используйте переменную, а не функцию:

echo $this->session->userdata['user_data']['item'];

Если вы хотите написать:

$this->session->userdata['user_data']['item'] = 'value';
$this->session->userdata['other_data']['other'] = 'value2';
$this->session->sess_write();

Это позволяет редактировать значения в массиве так же, как вы делаете с $_SESION ['user_data'] ['avatar'] = $avatar, с "единственной" дополнительной строкой и только с использованием библиотеки CI.

Ответ 3

Всегда избегать строки, это должно быть так:

echo $this->session->userdata('config[\'item\']');