我希望能够直接从函数的返回值访问数组。
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()
这样的原生数组函数。但您可以像访问数组和对象一样访问数据。