【php对象object object】PHP对象(object) 与 数组(array) 的转换例子

时间:2020-10-08  来源:面向对象编程  阅读:

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:

例子一

 代码如下

/**
 * 数组 转 对象
 *
 * @param array $arr 数组
 * @return object
 */
function array_to_object($arr)
{
 if (gettype($arr) != "array")
 {
  return;
 }
 foreach ($arr as $k => $v)
 {
  if (gettype($v) == "array" || getType($v) == "object")
  {
   $arr[$k] = (object)array_to_object($v);
  }
 }

 return (object)$arr;
}

/**
 * 对象 转 数组
 *
 * @param object $obj 对象
 * @return array
 */
function object_to_array($obj)
{
 $obj = (array)$obj;
 foreach ($obj as $k => $v)
 {
  if (gettype($v) == "resource")
  {
   return;
  }
  if (gettype($v) == "object" || gettype($v) == "array")
  {
   $obj[$k] = (array)object_to_array($v);
  }
 }

 return $obj;
}

例子2

 代码如下

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);

【php对象object object】PHP对象(object) 与 数组(array) 的转换例子

http://m.bbyears.com/jsp/103403.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新