我希望能够直接从函数的返回值访问数组。
e.g.
$arr = find_student();
echo $arr['name'];
// I want to be able to do
echo find_student()['name']
我怎样才能做到这一点?没有另一行代码?
答案 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()
这样的原生数组函数。但是你可以像在数组上一样访问数据,就像在对象上一样。