将 PHP 对象转换为关联数组

Subodh Poudel 2023年1月30日
  1. 使用 array 关键字将 StdClass 的对象类型转换为 PHP 中的关联数组
  2. 在用户定义的类中使用 StdClass 的对象将对象转换为 PHP 中的关联数组
  3. 在 PHP 中使用 json_encode()json_decode() 函数将对象转换为关联数组
将 PHP 对象转换为关联数组

我们将介绍一种将 PHP 对象转换为关联数组的方法,使用 array 关键字对 StdClass 的对象进行类型转换。我们将使用 var_dump() 函数来显示关联数组。

第二种方法演示了另一种将 PHP 对象转换为关联数组的方法,该方法在用户定义的类的构造函数中创建了 StdClass。我们将使用 array 关键字将对象转换为关联数组,就像在第一种方法中一样。该方法遵循面向对象的方法。

我们还将介绍另一种使用 json_encode()json_decode() 函数在 PHP 中将对象转换为关联数组的方法。我们将使用 StdClass 来创建对象和动态属性。

使用 array 关键字将 StdClass 的对象类型转换为 PHP 中的关联数组

我们可以创建 StdClass 空类以在 PHP 中创建一个对象并使用该对象创建属性。类的对象可以直接访问属性。它还可以为类创建动态属性。我们可以使用 array 对象将对象类型转换为数组。var_dump() 函数转储有关数组类型和值的信息。

例如,使用 new 运算符创建 StdClass 的对象 $object。使用名为 car1car2$object 创建两个属性。使用值 porschebugatti 分配属性。使用 array 关键字对 $object 变量进行类型转换。将 array 关键字用括号括在 $object 变量之前,并使用 var_dump() 函数转储值。下面的示例将对象转换为关联数组,如输出部分所示。它显示了数组中每个元素的键值对。

示例代码:

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

输出:

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

在用户定义的类中使用 StdClass 的对象将对象转换为 PHP 中的关联数组

我们可以在类的构造函数中创建 StdClass 的实例,并使用 array 关键字将类的对象转换为关联数组。我们可以创建一个类并定义它的一些属性。类的构造函数将类的属性初始化为特定值。我们可以创建 StdClass 的对象,并为其分配类的属性之一。new 运算符和类一起调用构造函数。我们可以在调用之前使用 array 关键字将类的对象转换为关联数组。

例如,创建一个类 Motorcycle。使用 private 访问修饰符创建三个类属性,分别为 $name$color$type。创建类的构造函数并在构造函数内部初始化属性的值。为 name 赋值 Husky,为 color 赋值 white,并为 type 创建一个 StdClass 的对象。使用 $this 关键字来初始化属性。在类之外,调用 Motorcycle 类并在调用之前使用 array 关键字进行类型转换。使用 var_dump() 函数转储有关类型转换数组的信息。

示例代码:

#php 7.x 
class Motorcycle{
    private $name;
    private $color;
    private $type;
    public function __construct(){
        $this->name = "Husky";
        $this->color = "white";
        $this->type = new StdClass;
    }
}
var_dump( (array) new Motorcycle );

输出:

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

在 PHP 中使用 json_encode()json_decode() 函数将对象转换为关联数组

json_encode() 函数将值编码为 JSON 对象,json_decode() 函数将 JSON 对象转换为 PHP 对象。json_decode() 函数的第二个参数布尔值指示 JSON 对象应该转换的内容。true 值会将 JSON 对象转换为关联数组,而 false 值会将其转换为 PHP 对象。

例如,创建 StdClass 的对象并将其分配给 $object 变量。将对象属性的两个值命名为 MustangManang,并将它们存储在 place1place2 变量中。在 $object 变量上使用 json_encode() 函数并将值存储在 $json 变量中。然后,在 $json 变量上使用 json_decode() 函数,并使用布尔值 true 作为第二个参数。将值存储在 $array 变量中。使用 var_dump() 函数转储变量。

在下面的示例中,变量 $object 包含 StdClass 对象。json_ecode() 函数将对象转换为 JSON 字符串。json_decode() 函数将 JSON 字符串转换为关联数组。

示例代码:

#php 7.x 
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>

输出:

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相关文章 - PHP Object