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

在PHP中,如何反序列化为当前对象?

发布时间:2020-12-13 17:06:34 所属栏目:PHP教程 来源:网络整理
导读:这可能是一个菜鸟问题,所以请善待. 我正在尝试在昂贵的“活动”对象上实现缓存.在构造函数中,我首先检查缓存以查看此Activity实例是否已存在.如果没有,我会执行所有查询来构建对象,将其序列化并将其保存到缓存中.下次进入时,我检查缓存,我的对象就在那里,所
这可能是一个菜鸟问题,所以请善待.

我正在尝试在昂贵的“活动”对象上实现缓存.在构造函数中,我首先检查缓存以查看此Activity实例是否已存在.如果没有,我会执行所有查询来构建对象,将其序列化并将其保存到缓存中.下次进入时,我检查缓存,我的对象就在那里,所以我将它反序列化.现在是我的问题,如何将该对象放入$this,当前对象?我不能只说“$this = unserialize($row [0]);”失败并显示错误消息“无法在ActivityClass.php中重新分配$this”.我错过了什么?

万分感谢!
麦克风

解决方法

如果您不希望您的构造离开该类,则可以创建工厂方法:

class Activity
{
    public static function Create(/* your params */)
    {
        // construct cache and key,whatever
        $obj = unserialize($cache->get($key));

        if ($obj) return $obj;

        return new Activity(/* params */);
    }

    // rest of your stuff
}

(编辑:李大同)

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

    推荐文章
      热点阅读