将 PHP 对象转换为关联数组
-
使用
array
关键字将StdClass
的对象类型转换为 PHP 中的关联数组 -
在用户定义的类中使用
StdClass
的对象将对象转换为 PHP 中的关联数组 -
在 PHP 中使用
json_encode()
和json_decode()
函数将对象转换为关联数组
我们将介绍一种将 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
。使用名为 car1
和 car2
的 $object
创建两个属性。使用值 porsche
和 bugatti
分配属性。使用 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
变量。将对象属性的两个值命名为 Mustang
和 Manang
,并将它们存储在 place1
和 place2
变量中。在 $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 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