function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
return $a;
}
如何做到这一点,以便在致电$a = myfunc();
时,您可以使用echo $a->foo;
并输出bar
?
附加问题:上面有这个简单的函数,返回一个数组或对象会更好吗?
答案 0 :(得分:7)
只需将其作为对象投射。
function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
return (object)$a;
}
至于你想要哪一个,这取决于你。这取决于你对返回的对象或数组做了什么。
答案 1 :(得分:0)
如果您返回一个数组,则必须以$a['foo']
的身份访问该成员。 ->
确实是一个oop运算符。要使用它,您需要创建一个对象而不是一个数组但,这意味着您必须首先定义一个类。这再次表示,对于此类对象的所有实例,必须存在两个成员foo
和baz
。所以这是完全不同的事情。
答案 2 :(得分:0)
1 - 我会这样做:
function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
$array = new ArrayObject($a);
return $array;
}
php版本5支持
2-如果你返回数组或对象并不重要,那就是你的决定