加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 从内部序列化对象

发布时间:2020-12-13 17:25:40 所属栏目:PHP教程 来源:网络整理
导读:我有类testClass有方法保存.此方法将对象保存到数据库.但它需要在保存之前序列化对象.如何从类中序列化对象来做到这一点? class testClass { private $prop = 777; public function save() { $serializedObject = serialize(self); DB::insert('objects',ar
我有类testClass有方法保存.此方法将对象保存到数据库.但它需要在保存之前序列化对象.如何从类中序列化对象来做到这一点?

class testClass {
    private $prop = 777;
    public function save() {
        $serializedObject = serialize(self);
        DB::insert('objects',array('id','object'))
                ->values(array(1,$serializedObject))
                ->execute();
    }
}

序列化(自我)显然不起作用.

解决方法

首先,你需要将$this传递给serialize()而不是self:

$serializedObject = serialize($this);

其次,除非你没有实现Serializable接口(从PHP 5.1开始),你需要实现“魔术方法”__sleep()以序列化私有或受保护的属性:

public function __sleep() {
    return array('prop');
}

这个manual page about serializing objects应该会有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读