首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭导致php-5.2中的语法错误

关闭导致php-5.2中的语法错误
EN

Stack Overflow用户
提问于 2011-06-25 13:22:09
回答 2查看 176关注 0票数 2

我从这个post中执行以下代码

代码语言:javascript
复制
preg_match_all("/'(.+)' ((\w+)\(? ?(\d*) ?\)?)/", $sql, $_matches, PREG_SET_ORDER);
$matches = array_map(function($v) {return array(trim($v[2]), $v[1]);}, $_matches);

但是我得到了以下错误:

代码语言:javascript
复制
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in SqlParser.php on line 29

我花了一些时间来解决这个问题,但我无法找到解决方案。

有人能告诉我出了什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-25 13:25:52

我假设您使用的PHP版本低于5.3,它不支持闭包(您在评论中确认了这一点)。下面的代码应该可以工作。我刚刚将匿名函数转换为普通函数。

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2011-06-25 13:24:53

除非你使用的是php 5.3,否则你不能使用这样的匿名函数。根据the php documentation for callbacks的说法,

从PHP5.3.0开始,也可以将闭包传递给回调参数。

您可以使用create_function()来创建匿名对象。函数,这将适用于PHP5.3之前的版本。或者使用GWW的答案,这也应该是可行的。

否则,如果您有兴趣了解更多有关anon的信息。函数在PHP 5.3+中,你可以读取their php docs

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6476027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档