在 PHP 中将对象转换为数组。
在 PHP 应用程序中,我们使用各种格式的数据,例如字符串、数组、对象等……在实时应用程序中,我们可能需要以关联数组的形式读取 php 对象结果以获取所需的输出。
因此,我们将在此讨论如何在 PHP 中将 php 对象转换为关联数组。
让我们解释一下 PHP 中的对象和关联数组是什么?对象是类的实例,这意味着您可以从一个类中创建多个对象。它只是一个类的样本,并分配了内存。而另一方面,由字符串作为索引组成的数组称为关联数组。它包含一个键值对,其中的值与各自的键相关联。
现在让我们讨论将对象转换为数组的各种方法。
方法 1:
利用 json_decode 和 json_encode 技术:
首先,json_encode() 函数返回给定值的 JSON 编码字符串。json_decode() 函数将其转换为 PHP 数组。
示例:
<?php class student { public function __construct($firstname, $lastname) { $this->firstname = $firstname; $this->lastname = $lastname; } } $myObj = new student("Alex", "Stokes"); echo "转换前:".'</br>'; var_dump($myObj); $myArray = json_decode(json_encode($myObj), true); echo "转换后:".'</br>'; var_dump($myArray); ?>
输出:
转换前: object(student)#1 (2) { ["firstname"]=> string(4) "Alex" ["lastname"]=> string(6) "Stokes" } 转换后: array(2) { ["firstname"]=> string(4) "Alex" ["lastname"]=> string(6) "Stokes" }
解释:
这里我们创建了一个 student 类,并在该类中声明了一个 __construct() 函数,该函数在创建对象时执行。构造函数接收稍后在 new 关键字的帮助下创建对象时提供的参数。在第一个 var_dump() 表达式中,我们打印对象,但在第二种情况下,我们借助 json_decode 和 json_encode 技术将对象转换为数组。
方法 2:
使用类型转换技术将对象转换为数组:
类型转换是将一种数据类型变量利用到不同数据类型的方法,它只是数据类型的精确转换。
<?php class bag { public function __construct( $item1, $item2, $item3){ $this->item1 = $item1; $this->item2 =$item2; $this->item3 = $item3; } } $myBag = new bag("Books", "Ball", "Pens"); echo "转换前:"。'</br>'; var_dump($myBag); $myBagArray = (array)$myBag; echo "转换后:"。'</br>'; var_dump($myBagArray); ?>
输出:
转换前: object(bag)#1 (3) { ["item1"]=> string(5) "Books" ["item2"]=> string(4) "Ball" ["item3"]=> string(4) "Pens" } 转换后: array(3) { ["item1"]=> string(5) "Books" ["item2"]=> string(4) "Ball" ["item3"]=> string(4) "Pens" }
说明:
这里我们创建了一个类 "bag",并在该类中声明了一个 __construct() 函数,该函数在创建对象时执行。构造函数接收稍后在 new 关键字的帮助下创建对象时提供的参数。在第一个 var_dump() 表达式中,我们只是打印对象,但在第二种情况下,我们借助类型提示程序将对象类型提示到数组中。