php 5.2上的php匿名函数抛出错误

php 5.2上的php匿名函数抛出错误,php,function,anonymous-function,Php,Function,Anonymous Function,我有以下代码 $resu = array_map(function($aVal, $bVal){ return "$bVal [$aVal]"; }, $result, $intersect); $sorAr = array(); array_walk($resu, function($element) use (&$sorAr) { $parts = explode(" ", $element); $sorAr[$parts[0]] = trim($parts[1], ' []');

我有以下代码

$resu = array_map(function($aVal, $bVal){
return "$bVal [$aVal]";
}, $result, $intersect);

$sorAr = array();
array_walk($resu, function($element) use (&$sorAr) {
$parts = explode(" ", $element);
$sorAr[$parts[0]] = trim($parts[1], ' []');
});
问题在于当我需要在变量$resu和on array_walk中使用匿名函数时。错误如下所示

分析错误:语法错误,/dir中意外的T_函数

我试图在这个网站上阅读不同的建议,但没有运气。我该如何解决这个问题。有人帮忙吗

我试过这个代码

function arrSwap() { 
                        $arraySwap = function($aVal, $bVal){
                            return "$bVal [$aVal]";
                            };                         
                        $resu = array_map($arraySwap, $result, $intersect);
                        }

                        $sorAr = array();
                        function arrSwap2() {
                        $arrayWalk = function($element) use (&$sorAr) {
                            $parts = explode(" ", $element);
                            $sorAr[$parts[0]] = trim($parts[1], ' []');
                        }; 
                        array_walk($resu, $arrayWalk);
                        }
但是我得到了这个错误

致命错误:无法重新声明arrSwap()(以前在第100行中声明过。。。
第100行是哪个->函数arrSwap(){

匿名函数在5.2中不可用

查看变更日志

5.3.0匿名功能可用


匿名函数在5.2中不可用

查看变更日志

5.3.0匿名功能可用

如果仍然存在问题,请让我知道所有这些值都在那里传递


如果仍然存在问题,请让我知道所有这些传递到那里的值

检查您的php版本,查看该版本是否支持匿名函数?不幸的是,它不受支持,5.2.6。如何重新编写上述代码以在该版本上工作?是的,有两个选项,一个是更新php版本,另一个是更改e函数,但如果在托管时发生此问题,则只需向服务器支持团队提交通知单,以更新服务器的php版本。是的,这就是我真正的问题所在,我如何更改上述代码以在php上的较低版本上工作,如<5.3?为这些匿名函数创建两个单独的函数,假设在上有name fn1作为函数($aVal,$bVal)具有签名,然后通过调用like array_map(fn1,$result,$intersect)分隔逗号来传递参数;第二个匿名函数也必须应用同样的东西。请检查您的php版本,查看该版本是否支持匿名函数?不幸的是,它不受支持,5.2.6。如何重新编写上述代码以在该版本上工作?是的,有两个选项,一个是更新上述php版本或更改t函数,但如果这个问题在托管时发生,那么只需向服务器支持团队提交一份通知单,以更新服务器的php版本。是的,这就是我真正的问题所在,我如何更改上述代码以在php上的较低版本上工作,如<5.3?为这些匿名函数创建两个单独的函数,假设有将具有签名的fn1命名为函数($aVal,$bVal),然后通过调用like array_map(fn1,$result,$intersect)分隔逗号来传递参数;第二个匿名函数也必须应用同样的方法。如果我遇到同样的问题,我将在foreach循环中调用函数,这与错误有关吗?在foreach循环中调用哪一个函数,尽管在foreach循环中调用函数不会改变它的行为,但调试y我们的代码是通过检查数组数据和函数中传递的其他变量来实现的,这是通过跟踪每个步骤来获得解决方案的唯一方法。但我还是遇到了同样的问题,我在foreach循环中调用函数,这与错误有关系吗?foreach中调用了哪一个函数循环,尽管在foreach循环中调用函数不必改变它的行为,但通过检查数组数据和函数中传递的其他变量来调试代码,这是只需在每个步骤上跟踪它们就可以得到解决方案的唯一方法。
function arr1($aVal, $bVal){ return "$bVal [$aVal]"; } 
function arrayWalk($element){ $parts = explode(" ", $element); $sorAr[$parts[0]] = trim($parts[1], ' []'); } 
function arrSwap(){ $resu = array_map('arr1', $result, $intersect); $sorAr = array(); array_walk($resu, 'arrayWalk'); }