以前在使用java开发中,通常都是在session里面存放的对象。在使用php开发中,也打算在session中存入对象,确实能把对象放进去,也能把整个对象输出,但就是取不出对象里面的属性。
通过print_r($obj) 查看,输出的是下面这串:
__PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => User [id:private] => 1 [username:private] => todaydiy [password:private] => 112233 [nickname:private] => huangwei [userid:private] => 1001 [logintimes:private] => 66 [lastlogintime:private] => 2010-04-20 23:30:23 [addtime:private] => 2010-04-19 23:49:12 )
可以看到,和普通的对象还是有区别的。
php手册中有一篇讲的是 “序列化对象 - 会话中的对象”,原话:
所以可以这样:
写入session时
$_session["user"] = serialize(目标对象);
读取session时
$obj = unserialize($_session["user"] );
print_r($obj);
User Object ( [id:private] => 1 [username:private] => todaydiy [password:private] => 112233 [nickname:private] => huangwei [userid:private] => 1001 [logintimes:private] => 71 [lastlogintime:private] => 2010-04-20 23:44:50 [addtime:private] => 2010-04-19 23:49:12 )
现在这个对象就是一个名副其实的对象了。