Документация PHP гласит: «Вы не можете использовать ссылки в переменных сеанса, поскольку не существует реального способа восстановить ссылку на другую переменную».
Означает ли это, что я не могу иметь такие вещи, как:
session_start();
$user = new User;
$user->name = 'blah';
$_SESSION['user'] = $user;
Я пытался сохранить простую строку и объект User в сеансе, строка всегда сохраняется между страницами или после обновления страницы. Однако переменная User теряется в $ _SESSION (становится пустой).
есть идеи?
Edit:
Я подтвердил, что идентификатор_ сеанса одинаков во всех этих страницах / подстраницах до и после обновления страницы.
Edit:
Как ни странно, после того, как я попробовал сериализовать и десериализовать подход ниже, сериализованный объект пользователя (или строка) в сеансе все еще исчезает!
Edit:
наконец, я понял, что это за ошибка, похоже, что $ _SESSION ['user'] перезаписывается какой-то таинственной силой, если я использую любую переменную, кроме 'user', то все в порядке. PHP (по крайней мере, версия 5.3, которую я использую) выполняет сериализацию и десериализацию автоматически, когда вы помещаете объект в $ _SESSION.
session_start();
$user = new User();
$user->name = 'blah'
$_SESSION['myuser'] = $user;