如何快速将 PHP 对象转换为关联数组
在集成操作基于对象的数据的 API 时,经常会出现这样的需求将这些对象转换为数组,以便与使用数组的现有代码保持一致。下面是执行此转换的简洁明了的解决方案:
对对象进行类型转换:
要将对象转换为关联数组,您可以简单地对它进行类型转换,如下所示:
$array = (array) $yourObject;
这种类型转换方法是一种直接且高效的方法。但是,请务必注意,它仅执行浅层转换。
转换数组中的属性可访问性:
将对象类型转换为数组时,适用各种规则财产可及性:
整数属性转换:
整数属性不可访问,不会出现在转换后的数组中。
示例:转换简单值对象:
$object = new StdClass; $object->foo = 1; $object->bar = 2; var_dump( (array) $object );
输出:
array(2) { 'foo' => int(1) 'bar' => int(2) }
示例:转换具有私有和受保护的复杂对象属性:
class Foo { private $foo; protected $bar; public $baz; public function __construct() { $this->foo = 1; $this->bar = 2; $this->baz = new StdClass; } } var_dump( (array) new Foo );
输出:
array(3) { 'Foofoo' => int(1) '*bar' => int(2) 'baz' => class stdClass#2 (0) {} }
如您所见,私有和受保护的属性存在于转换后的数组中,并带有指定的前缀前缀。
深度铸造和非公开属性:
请注意,此类型转换方法不执行深度转换。要访问非公共属性,您可能需要显式应用空字节,如官方 PHP 文档中所述。
有关更深入的信息,请参阅链接的资源:
以上是如何快速将PHP对象转换为关联数组?的详细内容。更多信息请关注PHP中文网其他相关文章!