2

我知道如何对对象进行 JSON 编码和解码。这没什么大不了的。但是,我遇到了需要保存$this为 JSON 字符串的情况,然后再$this从该 JSON 字符串中填充 的属性。

换句话说,我不想使用 JSON 字符串中的数据获取对象的新实例,我想将其应用于现有对象。

我怎样才能做到这一点?

4

1 回答 1

1

您可以使用http://php.net/manual/en/function.get-object-vars.php获取对象的定义属性get_object_vars()

class MyClass
{
    function populateFromJSON($data)
    {
        $o = json_decode($data);
        $attributes = get_object_vars($o);
        if (is_array($attributes)) {
            foreach ($attributes as $name => $val) {
                $this->$name = $val;
            }
        }
    }
}
于 2013-04-24T14:55:32.707 回答