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

    return $a;
}

你是如何做到的,这样当你打电话时$a = myfunc();你可以使用echo $a->foo;它并且它会输出bar

附加问题:有了上面那个简单的函数,返回数组还是对象更好?

4

3 回答 3

7

只需将其转换为对象即可。

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

    return (object)$a;
}

至于你要哪一个,就看你自己了。这取决于您对返回的对象或数组所做的事情。

于 2012-11-14T17:30:00.447 回答
1

1-我会这样做:

function myfunc ()
{
    $a['foo'] = 'bar';
    $a['baz'] = 'qux';
    $array = new ArrayObject($a);
    return $array;
}

ArrayObject从 php 版本 5 得到支持

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

于 2012-11-14T17:42:07.270 回答
0

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

于 2012-11-14T17:32:44.863 回答