我知道如何JSON编码和解码对象。这没什么大不了的。但是,我已经达到了一种情况,我需要将$this
保存为JSON字符串,然后再从该JSON字符串填充$this
的属性。
换句话说,我不想从JSON字符串中获取数据的对象的新实例,我想将其应用于现有对象。
我该怎么做呢?
您可以使用get_object_vars()
获取对象的定义属性http://php.net/manual/en/function.get-object-vars.php
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;
}
}
}
}