2011-02-01 154 views
0

我有一个自己的Array类。像这样:将数组转换为对象

myArray::fetch('site.meta.keywords'); // return Array(...) 

与此同时,我该怎么办?

myArray::fetch('site.meta.keywords');    // return Array(...) 
myArray::fetch('site.meta.keywords')->as_object(); // return Object{...} 

在PHP中可能吗?

回答

0

你应该看看ArrayObject,它的行为与任何其他数组相同,你可以扩展它(或你的班级?)。

在你的情况下,我会返回类似MyArrayObject(你的类扩展ArrayObject方法as_object()等))。

+0

谢谢凯莫。我会试试看。 – ProToneRCi 2011-02-01 10:47:30

2

你不能因为一个数组没有as_object方法。我会在你的数组类中创建一个单独的fetchAsObject方法,或者在你现有的提取方法中引入一个可选的asObject参数(布尔值,默认为false)。

0

如果在第一种情况下返回原始PHP数组,那么它不可能是。 你能做到这一点的方法:

public static function fetch($key, $as_object = false) 
{ 
    //in $data you have your array 
    return ($as_object) ? (object)$data : $data; 
} 

myArray::fetch('site.meta.keywords'); //return array 
myArray::fetch('site.meta.keywords', true); //return object 

或者只是这样的:

$dataAsArray = myArray::fetch('site.meta.keywords'); 
$dataAsObject = (object)myArray::fetch('site.meta.keywords'); 
+1

公共静态函数...? – Kemo 2011-02-01 10:33:48