将数组转换为对象

发布于 2024-10-15 00:53:54 字数 324 浏览 2 评论 0原文

我有一个自己的数组类。像这样:

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

同时,我该怎么做呢?

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

PHP 中可以吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幻想少年梦 2024-10-22 00:53:54

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

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.

在巴黎塔顶看东京樱花 2024-10-22 00:53:54

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

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

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.).

甜味超标? 2024-10-22 00:53:54

如果在第一种情况下您返回原始 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');

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');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文