php - 在 php 中返回数组会导致语法错误

标签 php

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/

相关文章:

php - DomDocument getElementById 不起作用?

关于旋转和合并的 PHP 图像质量问题

php mysql - 如何从第一页的链接中获取 ID 和日期?

php - 在 Woocommerce 3 中获取每个订单商品的税标

php - 如何限制用户打开现有的php页面?

php - 如果 p 标签后面跟着任何其他标签,xpath 不会返回文本

PHP - 从特定位置读取 TXT

php - Yii 的消息系统实现

Java 使用 PHP shell_exec 不返回任何内容

PHPdesigner 8 语法高亮