Проблема возникает из-за попытки интерполировать переменную немного «слишком сложно», если вы укажете $_SESSION[$value]
, у вас останется строка "$_SESSION[$value]"
, которая не является допустимым именем переменной - выпытаясь получить доступ к переменной, как если бы она была определена следующим образом: $$_SESSION[$value] = 'foo';
.То, что вы хотите сделать, это взять значение этого элемента массива и использовать его в переменной-переменной, что необходимо сделать, сославшись на него.
Кажется, что любой из следующих результатов даст результат, к которому вы стремитесь;прямая переменная переменная:
$value = 'foo';
$_SESSION['foo'] = 'bar';
$bar = 'baz';
echo ${$_SESSION[$value]}; //prints baz
Один с другим шагом, помогая сделать его более понятным:
$identifier = $_SESSION[$value];
echo $$identifier //prints baz
Я не понимаю, что вы будете хранить таким образом, ноВы также можете исследовать альтернативы для достижения более чистого, более прямого подхода.Если вы укажете свое использование за этим, возможно, кто-то сможет предложить альтернативную методологию.