天境之韫

天境之韫

吃饭,睡觉,打豆豆

  • 财富值1275
  • 威望值20
  • 总积分1605

个人信息

  • 2016-11-22 已签到
    连续签到2天,获得了10个金钱
  • 2016-11-21 已签到
    连续签到1天,获得了5个金钱
  • 赞了回答

    $arr = array('id'=>1,'name'=>'aaa');
    $arr = json_encode($arr);
    $arr = json_decode($arr);
    var_dump($arr);

    object(stdClass)[1]
    public 'id' => int 1
    public 'name' => string 'aaa' (length=3)

  • 回复了 的回答

    /**

    • 对象和数组的相互转化
    • @link
      */
      class Test{
      public $a;
      public $b;
      public function __construct($a) {
        $this->a = $a;
      

      }
      }

    //对象转数组,使用get_object_vars返回对象属性组成的数组
    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;
    }
    

    }

    $test = new Test('test1');
    $test->b = new Test('test2');

    print_r($test);
    $array = objectToArray($test);
    print_r($array);
    $object = arrayToObject($array);
    print_r($object);

    核心在于使用了魔术常量和递归函数,代码简介明了,可以标为最佳答案了

  • /**

    • 对象和数组的相互转化
    • @link
      */
      class Test{
      public $a;
      public $b;
      public function __construct($a) {
        $this->a = $a;
      

      }
      }

    //对象转数组,使用get_object_vars返回对象属性组成的数组
    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;
    }
    

    }

    $test = new Test('test1');
    $test->b = new Test('test2');

    print_r($test);
    $array = objectToArray($test);
    print_r($array);
    $object = arrayToObject($array);
    print_r($object);

  • 2016-11-18 已签到
    连续签到13天,获得了20个金钱
  • 赞了说说
    又是周五时
  • 赞了说说
    出太阳了。明天会更好。
  • 赞了说说
    周五了
  • 赞了说说
    上海热的有些反常
经理 等级规则
1605/2000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

4

Ta的粉丝

5

Ta的访客

6