• 技术文章 >后端开发 >php教程

    php对象转数组的函数

    VV2019-08-31 17:46:36原创3416

    关于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视频教程

    以上就是php对象转数组的函数的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:详细介绍php迭代器的作用 下一篇:php反射机制用法详解
    大前端线上培训班

    相关文章推荐

    • 数组是什么意思• 数组怎么用• php对象和数组区别• php对象和数组有什么区别

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网