【www.bbyears.com--面向对象编程】
用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的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被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;
}
数组转换成对象
代码如下
$array = array(1 => php,
2 => java,
3 => c );
$arrayobject = new ArrayObject($array);
var_dump($arrayobject);
?>
运行结果:
一个类: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);
结果:
object(ArrayObject)#1 (3) {
[1]=>
string(3) "one"
[2]=>
string(3) "two"
[3]=>
string(5) "three"
}