<p>用stdClass转换数组为对象 </p><pre class="brush:php;toolbar:false">1 $arr=array();
$arr['a']=1;
$arr['b']=2;
$arr['c']=3;
2 $arr=array();
$arr['a']=1;
$arr['b']=2;
$arr['c']=3;</pre><p> <br/></p><p>用stdClass转换后:</p><pre class="brush:php;toolbar:false">1 $object=newStdClass;
$object->a=1;
$object->b=2;
$object->c=3;
2 $object=newStdClass;
$object->a=1;
$object->b=2;
$object->c=3;</pre><p> <br/></p><p>stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法</p><p>我应用的地方是simplexml中的simplexml_load_string()上,因为返回的全是对象,如果提取数据比较麻烦,所以应用了下面的函数</p><pre class="brush:php;toolbar:false">functionobject_to_array($obj)
{
$_arr=is_object($obj)?get_object_vars($obj):$obj;
foreach($_arras$key=>$val)
{
$val=(is_array($val)||is_object($val))?object_to_array($val):$val;
$arr[$key]=$val;
}
return$arr;
}</pre><p>数组转换成对象</p><pre class="brush:php;toolbar:false">1 <?php
$array=array(1=>php,
2=>java,
3=>c);
2 $arrayobject=newArrayObject($array);
3 var_dump($arrayobject);
?></pre><p>运行结果:</p><p>1<span class="Apple-tab-span" > </span>object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [1]=> string(3) "php" [2]=> string(4) "java" [3]=> string(3) "c " }}<br/></p><p>一个类:ArrayObject,可以直接将数组转化为对象 </p><pre class="brush:php;toolbar:false">1 $array=array('1'=>'one',
'2'=>'two',
'3'=>'three');
$arrayobject=newArrayObject($array);
var_dump($arrayobject);
$array=array('1'=>'one',
'2'=>'two',
'3'=>'three');
$arrayobject=newArrayObject($array);
var_dump($arrayobject);</pre><p> <br/></p><p> </p><p>结果:</p><p></p><p>1<span class="Apple-tab-span" > </span></p><pre class="brush:php;toolbar:false">object(ArrayObject)#1(3){
[1]=>
string(3)"one"
[2]=>
string(3)"two"
[3]=>
string(5)"three"
}</pre><p> <br/></p>