php+对象+toarray_php对象转数组的函数

a4a9c44e4227a04b9afa16e7a6751018.png

关于php中想让对象以数组的形式访问,这时候就需要使用到get_object_vars()函数了。先来介绍一下这个函数。

官方文档是这样解释的:array get_object_vars ( object $obj )

返回由 obj 指定的对象中定义的属性组成的关联数组。

举例:<?php

class Point2D {

var $x, $y;

var $label;

function Point2D($x, $y)

{

$this->x = $x;

$this->y = $y;

}

function setLabel($label)

{

$this->label = $label;

}

function getPoint()

{

return array("x" => $this->x,

"y" => $this->y,

"label" => $this->label);

}

}

// "$label" is declared but not defined

$p1 = new Point2D(1.233, 3.445);

print_r(get_object_vars($p1));

$p1->setLabel("point #1");

print_r(get_object_vars($p1));

?>

输出:Array

(

[x] => 1.233

[y] => 3.445

[label] =>

)

Array

(

[x] => 1.233

[y] => 3.445

[label] => point #1

)

对象转数组具体实现:function objectToArray($obj) {

//首先判断是否是对象

$arr = is_object($obj) ? get_object_vars($obj) : $obj;

if(is_array($arr)) {

//这里相当于递归了一下,如果子元素还是对象的话继续向下转换

return array_map(__FUNCTION__, $arr);

}else {

return $arr;

}

}

数组转对象的具体实现:function arrayToObject($arr) {

if(is_array($arr)) {

return (object)array_map(__FUNCTION__, $arr);

}else {

return $arr;

}

}

更多相关内容请访问PHP中文网:PHP视频教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值