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