Попытка получить значение динамически генерируемой переменной сеанса. Я передал массив ключей функции, но функция возвращает эту строку:Получение динамически генерируемых переменных сеанса
['key1']['key2']['key3']
, а не как интерполированное значение сеанса.
Код:
// Sample $_SESSION superglobal
Array
(
[key1] => Array
(
[key2] => Array
(
[key3] => 'data to return'
)
)
)
// Function
public function session_data($variables = array())
{
// Set variables
$_dataArray = null;
$_dataArray = "['" . implode("']['", $variables) . "']";
// Return
return $_SESSION{$_dataArray};
}
// Call function
var str = session_data(array('key1', 'key2', 'key3'));
echo str; // Echoes ['key1']['key2']['key3'] instead of 'data to return'
Что я неправильно делаю? Я думал, что фигурные скобки вокруг $ _dataArray будут генерировать следующее: $ _SESSION ['key1'] ['key2'] ['key3'], интерполировать и возвращать значение (например, «данные для возврата»).
'session_data (массив ('key1', key2' , 'key3')); '' '' пропущено? это опечатка? –
Да, пропустил '. Исправлено. – JsusSalv