PHP简单对象与数组的转换函数代码
在PHP中,对象和数组是常用的数据类型,经常需要将它们之间进行转换。PHP提供了一系列的函数,方便快捷地实现这个功能。在本文中,我们将简要介绍如何使用这些函数进行对象和数组之间的转换。
将对象转为数组
在PHP中,使用 get_object_vars()
函数可以将对象转换为数组。此函数返回对象中所有可见属性的关联数组,其中键为属性名称,值为属性值。
以下是一个将对象转为数组的示例:
<?php
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$person = new Person('Tom', 23);
$personArray = get_object_vars($person);
print_r($personArray);
?>
上述代码将创建一个 Person
对象,并将其转换为数组。输出结果为:
Array
(
[name] => Tom
[age] => 23
)
可以看到,对象中的属性被转换为了数组中的键值对。
将数组转为对象
在PHP中,使用 (object)
或者 json_decode()
函数可以将数组转换为对象。其中 (object)
函数用于将关联数组转换为对象,而 json_decode()
函数可以将JSON格式的字符串转换为对象。
以下是一个将数组转为对象的示例:
<?php
$array = array(
'name' => 'Tom',
'age' => '23'
);
$person = (object) $array;
echo $person->name; // Output: Tom
echo $person->age; // Output: 23
?>
上述代码将创建一个关联数组,并将其转换为 Person
对象。输出结果为:
Tom
23
可以看到,数组中的键值对被转换为了对象中的属性。
PHP多层数组和对象的转换
在PHP中,多层嵌套的数组和对象之间的转换也是常见的操作。可以使用递归函数来实现这个功能。
以下是一个将多层嵌套的数组转换为对象的示例:
<?php
function arrayToObject($array) {
if(is_array($array)) {
$obj = new \stdClass();
foreach($array as $key => $value) {
$obj->$key = arrayToObject($value);
}
} else {
$obj = $array;
}
return $obj;
}
$array = array(
'name' => 'Tom',
'age' => '23',
'address' => array(
'province' => 'Guangdong',
'city' => 'Shenzhen',
'zone' => 'Nanshan',
),
);
$person = arrayToObject($array);
echo $person->name; // Output: Tom
echo $person->age; // Output: 23
echo $person->address->province; // Output: Guangdong
echo $person->address->city; // Output: Shenzhen
echo $person->address->zone; // Output: Nanshan
?>
上述代码将创建一个多层嵌套的关联数组,并将其转换为 Person
对象。输出结果为:
Tom
23
Guangdong
Shenzhen
Nanshan
可以看到,多层嵌套的数组被成功地转换为了对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php简单对象与数组的转换函数代码(php多层数组和对象的转换) - Python技术站