function get_arr() {
return array("one","two","three");
}
echo get_arr()[0];
为什么上面的代码会抛出如下错误?
parse error: syntax error, unexpected '['
最佳答案
这只是 PHP 语法的限制。如果函数返回数组,则不能索引函数的返回值。你的功能没有问题;相反,这显示了 PHP 的自制特性。就像 block 魂一样,随着时间的推移,它以一种相当随意的方式增加了特性和语法。从一开始就没有想到这一点,这种句法限制就是证明。
同样,即使这个更简单的构造也不起作用:
// Syntax error
echo array("one", "two", "three")[0];
要解决它,您必须将结果分配给一个变量,然后索引该变量:
$array = get_arr();
echo $array[0];
奇怪的是,他们对对象的处理是正确的。 get_obj()->prop
在语法上是有效的并且按预期工作。去图吧。
关于php - 在 php 中返回数组会导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710571/