phpにおけるオブジェクト変換配列と配列変換オブジェクトインスタンス

6773 ワード

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

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

$object = new StdClass;
$object->a = 1;
$object->b = 2;
$object->c = 3;

                                      
stdClassはPHPの1つのベースクラスで、すべてのクラスはほとんどこのクラスを継承しているので、いつでもnewされ、この変数をobjectにすることができます.同時に、この基類にはもう一つの特殊な場所があります.方法がありません.
私が適用した場所はsimplexmlのsimplexmlです.load_string()には、返されるのはすべてオブジェクトなので、データを抽出するのが面倒なので、次の関数を適用します.
function object_to_array($obj) 
{
$_arr = is_object($obj) ? get_object_vars($obj) : $obj;
foreach ($_arr as $key => $val)
{
$val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
$arr[$key] = $val;
}
return $arr;
}

 
配列をオブジェクトに変換
<?php
$array = array(1 => php,
2 => http://www.hzhuti.com/nokia/5233/,
3 => c );

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

 
実行結果:
object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [1]=> string(3) "php" [2]=> string(4) "http://www.hzhuti.com/nokia/5233/" [3]=> string(3) "c " }}

クラス:配列を直接オブジェクトに変換できるArrayObject
Phpコード
$array = array('1' => 'one',                       
'2' => 'two',
'3' => 'three');
$arrayobject = new ArrayObject($array);
var_dump($arrayobject);
$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"
}

           
詳細については、http://www.111cn.net/phper/php-cy/41861.htmを参照してください.