如何用php将对象转化为数组

后端开发   发布日期:2024年04月29日   浏览次数:295

这篇文章主要介绍了如何用php将对象转化为数组的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用php将对象转化为数组文章都会有所收获,下面我们一起来看看吧。

1.使用get_object_vars()函数

PHP提供了get_object_vars()函数,它可以将对象的属性值转化为一个关联数组。这个函数接收一个对象作为参数,并返回一个数组,数组的键是对象属性的名称,数组的值是属性的值。下面是一个例子:

  1. class Person {
  2. public $name;
  3. public $age;
  4. public $gender;
  5. public function __construct($name, $age, $gender) {
  6. $this->name = $name;
  7. $this->age = $age;
  8. $this->gender = $gender;
  9. }
  10. }
  11. $person = new Person('Tom', 18, 'male');
  12. $arr = get_object_vars($person);
  13. print_r($arr);

输出结果为:

  1. Array
  2. (
  3. [name] => Tom
  4. [age] => 18
  5. [gender] => male
  6. )

2.使用json_encode()函数

除了使用get_object_vars()函数之外,我们还可以使用json_encode()函数将对象转换为JSON格式的字符串,然后使用json_decode()函数将其转换为数组。下面是一个例子:

  1. class Person {
  2. public $name;
  3. public $age;
  4. public $gender;
  5. public function __construct($name, $age, $gender) {
  6. $this->name = $name;
  7. $this->age = $age;
  8. $this->gender = $gender;
  9. }
  10. }
  11. $person = new Person('Tom', 18, 'male');
  12. $jsonStr = json_encode($person);
  13. $arr = json_decode($jsonStr, true);
  14. print_r($arr);

输出结果和上一个例子相同。

3.使用对象的__toArray()方法

如果你掌握了面向对象编程的基础知识,那么你可以在自己的类中定义一个__toArray()方法,该方法用于将对象的属性值转化为一个数组。下面是一个例子:

  1. class Person {
  2. public $name;
  3. public $age;
  4. public $gender;
  5. public function __construct($name, $age, $gender) {
  6. $this->name = $name;
  7. $this->age = $age;
  8. $this->gender = $gender;
  9. }
  10. public function __toArray() {
  11. $arr = [];
  12. $arr['name'] = $this->name;
  13. $arr['age'] = $this->age;
  14. $arr['gender'] = $this->gender;
  15. return $arr;
  16. }
  17. }
  18. $person = new Person('Tom', 18, 'male');
  19. $arr = $person->__toArray();
  20. print_r($arr);

输出结果也和前面两个例子相同。

以上就是如何用php将对象转化为数组的详细内容,更多关于如何用php将对象转化为数组的资料请关注九品源码其它相关文章!