phpでの配列とオブジェクトの相互変換


1、強制的にオブジェクトを配列に変換する
$arr = (array)$obj;

変換結果は次の例で示します.
print_でr印刷対象
stdClass Object
(
    [name] => main
    [text] =>
    [parrent] =>
    [content] =>
    [props] => Array
        (
        )

    [inner] => Array
        (
        )

    [level] => 0
)

強制変換後の配列
Array
(
    [name] => main
    [text] =>
    [parrent] =>
    [content] =>
    [props] => Array
        (
        )

    [inner] => Array
        (
        )

    [level] => 0
)

方法2:stdClassで配列をオブジェクトに変換する
$arr = array();
$arr['a'] = 1;
$arr['b'] = 2;
$arr['c'] = 3;

stdClass変換後:
$object   = new StdClass;
$object->a = 1;
$object->b = 2;
$object->c = 3;

stdClassはPHPの1つのベースクラスで、すべてのクラスはほとんどこのクラスを継承しているので、いつでもnewされ、この変数をobjectにすることができます.同時に、この基類にはもう一つの特殊な場所があり、方法がない.
 
3、一つのクラス:ArrayObject、配列を直接オブジェクトに変換できる
 
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);

結果:
object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}