我现在有一些奇怪的问题。 显然,我的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));
我真的不明白这一点。似乎无论我尝试做什么来解决这个错误 - 它仍然有效。 帮助
答案 0 :(得分:2)
从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。之前只能使用临时变量。
请查看examples
您的代码必须是适合的
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));
答案 1 :(得分:1)
将爆炸的数组存储在另一个变量中,然后返回第0个索引。
像这样:
return array_map( function ($val) {
$temp explode('.', $val);
return $temp[0];
}, scandir(DIR . M_DIR));