1.对象=>数组

(1).强制转换

 


原对象为
<?php
stdClass Object   
(   
    [name] => main   
    [text] =>   
    [parrent] =>   
    [content] =>   
    [props] => Array   
        (   
        )   
 
    [inner] => Array   
        (   
        )   
 
    [level] => 0   
)
?>
<?php
$arr = (array)$obj;
?>
强制转换后的数组
<?php
Array   
(   
    [name] => main   
    [text] =>   
    [parrent] =>   
    [content] =>   
    [props] => Array   
        (   
        )   
 
    [inner] => Array   
        (   
        )   
 
    [level] => 0   

?>

(2).用内置函数get_object_vars();

 2.数组=>对象


<?php
$array = get_object_vars( $object );
?>
原对象:
<?php
class foo {       
     
    private $a;       
     
    public $b = 1;       
     
    public $c;       
     
    private $d;       
     
    static $e;       
     
}           
$test = new foo;             
var_dump(get_object_vars($test)); 
?>
结果为:
<?php
array(2) {     
    ["b"]=>  int(1)             
    ["c"]=>  NULL           

?>

 

(1).用stdClass转换数组为对象

 


数组
<?php
$arr = array();   
$arr['a'] = 1;   
$arr['b'] = 2;   
$arr['c'] = 3; 
?>
用stdClass转换后:
<?php
$object = new StdClass;   
$object->a = 1;   
$object->b = 2;   
$object->c = 3; 
?>

 (2).ArrayObject,可以直接将数组转化为对象

 


<?php
$array = array('1' => 'one',   
               '2' => 'two',   
               '3' => 'three');   
$arrayobject = new ArrayObject($array);   
var_dump($arrayobject); 
?>
<?php
object(ArrayObject)#1 (3) {   
  [1]=>   
  string(3) "one" 
  [2]=>   
  string(3) "two" 
  [3]=>   
  string(5) "three" 

?>