PHP中用session存入对象的解决方案

本文介绍如何在PHP中正确地将对象存储到Session中,并能够成功地读取对象属性。通过序列化和反序列化的方式解决了直接存储对象时无法访问其属性的问题。

以前在使用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手册中有一篇讲的是 “序列化对象 - 会话中的对象”,原话:

php session中存入对象解决方案 - todaydiy - 待飞的热气球

 

所以可以这样:

      写入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 )

     

      现在这个对象就是一个名副其实的对象了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值