开发者

Convert array into object

I have a own Array class. Like this:

myArray::fetch('site.开发者_高级运维meta.keywords');  // return Array(...)

At the same time, How can I do like this?

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

Is it possible in PHP?


You can't because an array doesn't have an as_object method. I would make a separate fetchAsObject method in your array class, or introduce an optional asObject parameter (boolean, default false) to your existing fetch method.


You should take a look at ArrayObject, it behaves the same as any other array and you can extend it (or your class?).

In your case I'd return something like MyArrayObject (your class extending ArrayObject with method as_object() etc.).


If in first case you are returning raw PHP Array it is not possible. You can do that way:

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

Or just simply like that:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜