如何在PHP中将数组作为对象返回?

时间:2012-11-14 17:28:35

标签: php

function myfunc ()
{
    $a['foo'] = 'bar';
    $a['baz'] = 'qux';

    return $a;
}

如何做到这一点,以便在致电$a = myfunc();时,您可以使用echo $a->foo;并输出bar

附加问题:上面有这个简单的函数,返回一个数组或对象会更好吗?

3 个答案:

答案 0 :(得分:7)

只需将其作为对象投射。

function myfunc ()
{
    $a['foo'] = 'bar';
    $a['baz'] = 'qux';

    return (object)$a;
}

至于你想要哪一个,这取决于你。这取决于你对返回的对象或数组做了什么。

答案 1 :(得分:0)

如果您返回一个数组,则必须以$a['foo']的身份访问该成员。 ->确实是一个oop运算符。要使用它,您需要创建一个对象而不是一个数组,这意味着您必须首先定义一个类。这再次表示,对于此类对象的所有实例,必须存在两个成员foobaz。所以这是完全不同的事情。

答案 2 :(得分:0)

1 - 我会这样做:

function myfunc ()
{
    $a['foo'] = 'bar';
    $a['baz'] = 'qux';
    $array = new ArrayObject($a);
    return $array;
}
php版本5支持

ArrayObject

2-如果你返回数组或对象并不重要,那就是你的决定