我想在PHP中将对象转换为数组 - 但只是公共字段。我发现了一些关于在PHP中将对象转换为数组的答案,但它们都转换了所有字段(也是私有的)。我只需要公共领域 - 我怎么能实现呢?
答案 0 :(得分:8)
示例:
$object_to_arr = get_object_vars($obj);
get_object_vars()
只返回对象的可访问和非静态属性。
修改强>
如果您直接在$this
上运行此功能,则会返回private
个属性。这是因为类本身可以访问private
属性。
要解决这个问题,请执行以下操作:
$i = $this;
$publics_only = function() use ($i) {
return get_object_vars($i);
};
return $publics_only();