2012-11-14 106 views
1
function myfunc() 
{ 
    $a['foo'] = 'bar'; 
    $a['baz'] = 'qux'; 

    return $a; 
} 

你怎么做,所以,当你调用$a = myfunc();你可以使用echo $a->foo;,它会输出bar如何在PHP中将数组作为对象返回?

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

+2

“更好”是主观的。更好的目的是什么? – deceze

+0

@deceze我想我的问题是在相同的比较中使用系统资源的效率更高,单引号比双引号更快。 – IMB

+1

@IMB:看看这个:http://www.phpbench.com/ –

回答

7

只是将它作为一个对象进行投射。

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

    return (object)$a; 
} 

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

0

如果您返回一个数组,您必须以$a['foo']的身份访问该成员。 ->确实是一个操作符。要使用这个,你需要创建一个对象而不是数组,但是这意味着你必须先定义一个类。这也意味着两个成员foobaz必须存在于这样的对象的实例全部实例。所以这是完全不同的事情。

0

1,我会做这样的:

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

ArrayObject支持形式的PHP版本5

2-并不重要,如果你返回数组或对象,其自己的决定

相关问题