PHP文档说“你不能在会话变量中使用引用,因为没有可行的方法来恢复对另一个变量的引用。
这意味着我不能有像:
session_start();
$user = new User;
$user->name = 'blah';
$_SESSION['user'] = $user;
我试图在会话中存储一个简单的字符串和一个User对象,字符串始终保持在页面之间的页面之间,或页面刷新后。但是,User变量在$ _SESSION中丢失(变为空)。
任何想法?
编辑:
我已经确认session_id在所有这些页面/子页面中是相同的,页面刷新后。
编辑:
奇怪的是,在我尝试序列化和反序列化方法下面,序列化的用户对象(或字符串)在会话仍然仍然消失!
编辑:
最后我想出了什么是错误,看起来像不知何故$ _SESSION [‘user’]被一些神秘的力,如果我使用任何变量而不是“用户”覆盖,然后一切都很好。 PHP(至少5.3,这是我使用的版本)当你把对象放在$ _SESSION时,自动序列化和反序列化。
session_start();
$user = new User();
$user->name = 'blah'
$_SESSION['myuser'] = $user;