将对象转换为数组PHP - 仅限公共字段

时间:2014-01-23 16:37:50

标签: php oop object

我想在PHP中将对象转换为数组 - 但只是公共字段。我发现了一些关于在PHP中将对象转换为数组的答案,但它们都转换了所有字段(也是私有的)。我只需要公共领域 - 我怎么能实现呢?

1 个答案:

答案 0 :(得分:8)

使用get_object_vars()

示例:

$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();