闭包会导致php-5.2中的语法错误

| 我正在从这篇文章中执行以下代码:
preg_match_all(\"/\'(.+)\' ((\\w+)\\(? ?(\\d*) ?\\)?)/\", $sql, $_matches, PREG_SET_ORDER);
$matches = array_map(function($v) {return array(trim($v[2]), $v[1]);}, $_matches);
但是我收到以下错误:
Parse error: syntax error, unexpected T_FUNCTION, expecting \')\' in SqlParser.php on line 29
我花了一些时间解决此问题,但找不到解决方案。 有人可以告诉我这是什么问题吗?     
已邀请:
        我假设您使用的PHP版本低于5.3,该版本不支持闭包(您已在注释中确认了这一点)。下面的代码应该工作。我只是将匿名函数转换为普通函数。
function map_cb($v){
    return array(trim($v[2]), $v[1]);
}


preg_match_all(\"/\'(.+)\' ((\\w+)\\(? ?(\\d*) ?\\)?)/\", $sql, $_matches, PREG_SET_ORDER);
$matches = array_map(\"map_cb\", $_matches);
    
        除非您使用的是php 5.3,否则您不能使用这样的匿名函数。根据有关回调的php文档,   从PHP 5.3.0起,还可以   将闭包传递给回调   参数。 您可以使用
create_function()
来创建匿名。函数,并且可以在PHP 5.3之前的版本中使用。或使用GWW的答案,也应该起作用。 否则,如果您有兴趣进一步了解anon。 PHP 5.3+中的函数,您可以阅读其php文档。     

要回复问题请先登录注册