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


How access a key of a array which is returned by a function

我希望能够直接从函数的返回值访问数组。

e.g. 
$arr = find_student();
echo $arr['name'];
// I want to be able to do
echo find_student()['name']

我怎样才能做到这一点?没有另一行代码?

你不能。PHP语法解析器受到限制,在当前版本中不允许使用。

PHP开发人员为即将发布的PHP扩展了解析器。这里有一个关于它的博客链接

您不能:)

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()这样的原生数组函数。但您可以像访问数组和对象一样访问数据。