PHP 把对象转数组
时间: 2024-09-02 21:02:09 浏览: 80
xml转换数组、对象转数组
在PHP中,将对象转换为数组通常有两种方式:
1. **魔术方法** `__toArray()`: 如果你想自定义对象转换成数组的方式,可以覆盖PHP内置的`__toArray()`方法。当你调用`get_object_vars($object)` 或 `$array = (array) $object;`时,如果没有提供该方法,PHP会在尝试之前先寻找这个方法。
```php
class MyClass {
public function __toArray() {
return [
'property1' => $this->property1,
'property2' => $this->property2
];
}
}
$obj = new MyClass();
$array = $obj->__toArray(); // 输出按照自定义方法转换的结果
```
2. **`get_object_vars()`函数**: 这个内置函数可以直接获取对象的所有公共属性并创建一个关联数组。对于简单对象,这种方法很实用。
```php
$obj = new MyClass;
$array = get_object_vars($obj); // 获取对象的属性并转换为数组
```
3. **强制类型转换 `(array)`**: 对于简单的非复杂对象,你可以使用`(array)`操作符将对象强制转换为数组,这会遍历对象的成员并将其添加到新数组中。
```php
$obj = new MyClass;
$array = (array) $obj; // 将对象的public属性添加到数组中
```
阅读全文