Я почти стесняюсь спросить, потому что это кажется таким простым, но я не могу заставить его обновить.
Когда пользователь входит в систему, я устанавливаю переменные сессии как
array('users'=>array('timezone'=>'America/los Angeles'));
Затем я могу получить данные следующим образом: $_SESSION['users']['timezone']
и работает нормально.
Однако на странице профиля пользователя пользователь может изменить свой часовой пояс, и когда я пытаюсь обновить $ _SESSION следующим образом, он не работает:
$_SESSION['users']['timezone'] = 'America/Denver';
Что я делаю не так?
--- Больше кода по запросу -------
Я обнаружил, что переменные сеанса устанавливаются функцией внутри класса
Вот функция:
function session_var_register($object_name, $var_value)
{
$_SESSION[$object_name]=$var_value;
}
Вот как вызывается функция:
$gf->session_var_register("users", $user_array)
Массив пользователей выглядит как array('users'=>array('timezone'=>'America/los Angeles'));
Я не понимаю, почему это не работает. Я смог обойти проблему, хотя, обходя вызов функции и просто создавая массив как:
$_SESSION['users'] = $user_array;
Но по причинам знания, и если кто-то еще придет на этот пост, кто-нибудь может объяснить, что функция делала по-другому? Не было выдано никаких ошибок, просто не позволило бы мне присвоить что-либо переменной сеанса, как только она была зарегистрирована с помощью функции ... почти действовал так, как если бы она стала read_only после ее создания.