0

我现在有一些奇怪的问题。显然,我的 MySQL PDO 驱动程序以及我的 Apache 服务器都存在问题,所以我重新安装了它。但是现在,在我这样做之后突然出现了这个解析错误:

Parse error: syntax error, unexpected '[' on line 5

好吧,这是第 5 行的代码:

return array_map(function ($val) { return explode('.', $val)[0]; }, scandir(DIR . M_DIR));

我真的不明白这一点。似乎无论我尝试做什么来修复这个错误——它仍然有效。帮助?

4

2 回答 2

2

从 PHP 5.4 开始,可以直接对函数或方法调用的结果进行数组取消引用。以前只能使用临时变量。

大批

所以看看例子

您的代码必须看起来像

return array_map(
    function ($val)
        { 
        $temp = explode('.', $val); 
        return $temp[0]; 
        }, 
    scandir(DIR . M_DIR));

或者

return array_map(
    function ($val)
        { 
        return current(explode('.', $val));
        }, 
    scandir(DIR . M_DIR));
于 2013-03-26T02:38:06.830 回答
1

将展开的数组存储在另一个变量中,然后返回第 0 个索引。

像这样:

return array_map( function ($val) { 
        $temp explode('.', $val);
        return $temp[0];
    }, scandir(DIR . M_DIR));
于 2013-03-26T02:38:57.813 回答