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');
精彩评论