我正在使用AppServ 2.6.0 / Apache 2.2.8 / PHP 6.0.0-dev,我收到以下函数的错误。
<? if(count($ex) > 0) {
foreach($ex as $k => $v) {
echo "<tr><td style='font-size:12px;'>".strip_tags($k)."</td>
<td style='font-size:10px;'>".$v['count']."</td>
<td style='font-size:10px;'>".implode(", ", array_map(function ($k, $v)
{ return $k."/".$v; }, array_keys($v['players']), array_values($v['players'])))."
</td></tr>";
}
} ?>
错误是(第14行是array_map()
所在的位置):
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' ** on line 14
可悲的是,我无法更改PHP版本(我知道错误可能与PHP版本有关)。如果我升级PHP,整个项目,不是由我开始的,将会崩溃。
有没有办法让这个代码在Apache 2.2.8 / PHP 6.0.0-dev上运行?
如果没有办法解决这个问题,并且我不得不改变我的php版本,那么有没有任何版本的PHP5.3匿名函数也可以保留已弃用的版本?
答案 0 :(得分:2)
您可以将其定义为“常规”函数并将其名称传递给array_map
,而不是使用匿名函数:
function foo($k, $v) {
return $k."/".$v;
}
array_map('foo', $my_array);