如何访问函数返回的数组的键值

问题描述:

我想直接从函数的返回值访问数组。如何访问函数返回的数组的键值

e.g. 
$arr = find_student(); 
echo $arr['name']; 

// I want to be able to do 
echo find_student()['name'] 

我怎样才能达到同样的?没有另一行代码?

+0

你想要什么都做不到。你必须首先给返回值赋予一个变量 – jere 2012-01-11 12:36:47

+0

等待PHP 5.4的几个星期/几个月(我相信)确实允许这种语法 – 2012-01-11 12:43:42

你不行。 PHP语法解析器是有限的,不允许在当前版本中使用。

PHP devs扩展了即将发布的PHP的解析器。这里有一个blog talking about it

一个链接,你不能:)

function find_student() {return array('name'=>123);} 
echo find_student()['name']; 

结果: 解析错误:语法错误,意想不到的 '[',希望 '' 或 ';'

您可以使用ArrayObject做类似的事情。

function find_student() { 
//Generating the array.. 
$array = array("name" => "John", "age" => "23"); 

return new ArrayObject($array); 
} 

echo find_student()->name; 
// Equals to 
$student = find_student(); 
echo $student['name']; 

下降是你不能使用本地阵列功能,如array_merge()对此。但是你可以像访问数组一样访问数据,就像访问对象一样。

+0

是的,我想这是这样做的一种方法。谢谢 – 2012-01-12 09:24:55

+0

另外,如果你想使用数组函数,你可以这样做:(array)find_student(); – Prof83 2012-11-21 22:54:35