2011-12-21 1 views
0

나는 다음과 같은 PHP 코드를 실행하려고 해요 :클로저 컨텍스트에서 익명 함수를 사용하여 PHP에서 "use"키워드를 사용할 수 있습니까?

$path_hierarchy = // function that returns an array 

return array_reduce(
    $terms, 
    function($val1, $val2) use ($path_hierarchy) { 
     return $val1 || in_array($val2, $path_hierarchy); 
    } 
); 

을 ...하지만 나는 다음과 같은 PHP 오류 받고 있어요 : 그래서

PHP Parse error: syntax error, unexpected ')', expecting '{'

을, 나는 다음과 같은 구문으로 전환 :

$path_hierarchy = // function that returns an array 

$callback = function($val1, $val2) use ($path_hierarchy) { 
    return $val1 || in_array($val2, $path_hierarchy); 
}; 

return array_reduce(
    $terms, 
    $callback 
); 

...이 일했다. 익명 함수의 컨텍스트에서 use 키워드를 다른 함수의 인수로 사용할 수 있습니까?

+0

작동하지 않는 코드를 복사하여 붙여 넣기 할 수 있습니까? 그것은 또한 어떤 라인에 대해 불평하고 있는지 정확히 보는 것을 도울 것입니다. –

답변

5

return $val1 || in_array($val2, $path_hierarchy))

문제는 두 번째 닫는 괄호입니다.

+0

그것은 코드를 전송하는 오타였습니다 ... 나는 직선 복사 붙여 넣기를하지 않았습니다. – rybosome

+0

명확히 말하면, 오타가 스택 오버 플로우 문제였습니다. 실제 코드에는이 오타가 없습니다. – rybosome

+0

괄호를 세미콜론으로 바꾸면 완벽하게 작동합니다. 참조 this : https://gist.github.com/1507535 :> php -f "bla.php" > 종료 코드 : 0 – TimWolla