将数组转换为对象

时间:2011-02-01 10:27:52

标签: php arrays object

我有一个自己的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中使用?

3 个答案:

答案 0 :(得分:2)

您不能因为数组没有as_object方法。我会在你的数组类中创建一个单独的fetchAsObject方法,或者在你现有的fetch方法中引入一个可选的asObject参数(boolean,default false)。

答案 1 :(得分:0)

您应该查看ArrayObject,它的行为与其他任何数组相同,您可以扩展它(或者您的类?)。

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

答案 2 :(得分: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');