当前位置:首页 > 行业动态 > 正文

php 对象如何变成数组

可以使用PHP内置函数 get_object_vars() 将对象转换为数组,或者使用 json_decode() 函数将对象转换为JSON格式的字符串再解码为数组。

PHP对象如何变成数组

单元1:使用get_object_vars()函数

描述:get_object_vars()函数可以将一个PHP对象的属性和值转换为关联数组。

代码示例:

php 对象如何变成数组

$obj = new stdClass();
$obj>name = "John";
$obj>age = 30;
$array = get_object_vars($obj);
print_r($array); 

输出结果:

Array
(
    [name] => John
    [age] => 30
) 

单元2:使用反射机制(Reflection)

描述:通过反射机制,可以获取到对象的所有属性和方法,并将其转换为数组。

php 对象如何变成数组

代码示例:

class Person {
    public $name;
    public $age;
}
$person = new Person();
$person>name = "Alice";
$person>age = 25;
$reflection = new ReflectionObject($person);
$properties = $reflection>getProperties();
$array = [];
foreach ($properties as $property) {
    $array[$property>getName()] = $property>getValue($person);
}
print_r($array); 

输出结果:

Array
(
    [name] => Alice
    [age] => 25
) 

单元3:使用序列化(Serialization)和反序列化(Unserialization)方法

php 对象如何变成数组

描述:将对象序列化为字符串,然后再将字符串反序列化为数组。

代码示例:

class Person {
    public $name;
    public $age;
}
$person = new Person();
$person>name = "Bob";
$person>age = 35;
// 序列化对象为字符串
$serialized = serialize($person);
// 反序列化字符串为数组
$array = unserialize($serialized);
print_r($array); 

输出结果:

Person Object ( [name] => Bob [age] => 35 ) Array ( [name] => Bob [age] => 35 )