php对象强制转换为数组,在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 "转换前:".'';

var_dump($myObj);

$myArray = json_decode(json_encode($myObj), true);

echo "转换后:".'';

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" }

说明:

在这里,我们创建了一个类学生,并在该类内声明了__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 "转换前:".'';

var_dump($myBag);

$myBagArray = (array)$myBag;

echo "转换后:".'';

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()表达式中,我们只是打印对象,而在第二种情况下,我们将在类型提示过程的帮助下将对象类型提示为数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值