我有一个自己的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 :(得分: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');