PHPのオブジェクト、配列を相互変換するサンプルプログラム

PHPコード:
/**
* オブジェクトと配列を相互変換
*/
class ArOb_Startnews24{
public $a;
public $b;
public function __construct($a) {
$this->a = $a;
}
}

//オブジェクトから入れる
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 ArOb_Startnews24('one_startnews24’);
$test->b = new ArOb_Startnews24('two_startnews24’);

print_r($test);
$array = objectToArray($test);
print_r($array);
$object = arrayToObject($array);
print_r($object);
説明:
1.get_object_vars
array get_object_vars ( object $object )
指定したobjectについて、そのスコープ内でアクセス可能な非staticプロパティを取得します。

2array_map
指定した配列の要素にコールバック関数を適用する
array array_map ( callable $callback , array $array1 [, array $… ] )
array1の各要素にcallback関数を適用した後、その全ての要素を含む配列を返します。

PHP

Posted by arkgame