PHP数组语法分析错误左方括号“[”

时间:2012-08-11 05:37:06

标签: php arrays function reference

我有一个返回数组的函数。我有另一个函数只返回第一行,但由于某种原因,它使我使用一个中间变量,即失败:

function f1(/*some args*/) {
    return /*an array*/;
}
function f2(/*some args*/) {
    return f1(/*some args*/)[0];
}

。 。 。用:

  

解析错误:语法错误,第10行的util.php中的意外'['

但是,这有效:

function f1(/*some args*/) {
    return /*an array*/;
}
function f2(/*some args*/) {
    $temp = f1(/*some args*/);
    return $temp[0];
}

我无法在网上找到任何相关内容(我的搜索一直被“?”,“{”,“<”等人混淆。

我在PHP中自学成才 - 有什么理由说我不能直接这样做,我错过了吗?

2 个答案:

答案 0 :(得分:25)

您不能使用函数数组解除引用

return f1(/*some args*/)[0];

直到PHP 5.4.0及以上。

答案 1 :(得分:2)

这种行为的原因是PHP函数不能像JavaScript函数那样被链接。就像document.getElementsByTagNames('a')[0]一样可能。

您必须坚持PHP版本的第二种方法< 5.4

  

添加了函数数组解除引用,例如FOO()[0]。

http://php.net/manual/en/migration54.new-features.php