2014-01-12 5 views
0

AppServ 2.6.0/Apache 2.2.8/PHP 6.0.0-dev를 사용하고 있는데 다음과 같은 기능으로 오류가 발생합니다.예기치 않은 T_FUNCTION, 예상 ')'

<? 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>"; 
    } 
} ?> 

오류가합니다 (array_map()이 어디 선 (14)이다) : 슬프게도

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' ** on line 14 

, 나는 PHP 버전 (I 오류가 함께해야 할 수 있음을 알고 있어요 변경할 수 없습니다 PHP 버전). PHP를 업그레이드하면 나에 의해 시작되지 않은 전체 프로젝트가 분리됩니다.

이 코드가 Apache 2.2.8/PHP 6.0.0-dev에서 작동하도록하는 방법이 있습니까?

주위에 방법이 없으면 내 PHP 버전을 변경해야합니다. PHP5.3 익명 기능을 사용하는 버전이 있습니까?

+0

가 일반에 선언라는 이름의 기능을 확인? – mario

+2

"... 그 또한 사용되지 않는 것들을 유지합니까?" - 그게 정확히 무슨 뜻 이죠? 더 이상 존재하지 않는 무언가의 알파 버전 인 PHP 6.0.0-dev를 사용하는 것도 나쁜 생각입니다. PHP의 "진짜"버전으로 전환해야합니다. – deceze

+0

PHP 4.0.1부터 사용할 수있는 [create_function] (http://php.net/create_function)을 사용할 수 있습니다. –

답변

2

대신 익명 함수 당신이 "일반"기능으로 정의하고 array_map에 이름을 전달할 수 있습니다 사용 :

function foo($k, $v) { 
    return $k."/".$v; 
} 

array_map('foo', $my_array); 
+1

글쎄, 이건 분명히 나를 어리 석게 만든다. 나는 이것에 관해 무언가를하려고 지난 시간을 보냈다. 고마워. – danks

+0

@ danks 질문에 답이 났을 때 답변자에게 감사의 말을 남기지 않고 대답을 수락 된 것으로 표시하십시오. 15 명의 담당자가 있으면 수락 한 대답과 도움이되는 다른 사람을 upvote 할 수 있습니다. http://stackoverflow.com/help/someone-answers를 참조하십시오. –