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

时间:2012-01-11 12:32:28

标签: php chaining

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

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

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

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

3 个答案:

答案 0 :(得分:6)

你做不到。 PHP语法分析器是有限的,并且在当前版本中不允许它。

PHP开发人员为即将发布的PHP版本扩展了解析器。这是blog talking about it

的链接

答案 1 :(得分:2)

你不能:)

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

结果: 解析错误:语法错误,意外'[',期待','或';'

答案 2 :(得分:2)

您可以使用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()这样的原生数组函数。但是你可以像在数组上一样访问数据,就像在对象上一样。