Разве нельзя использовать ключевое слово «use» в PHP с анонимной функцией в контексте закрытия? - PullRequest
0 голосов
/ 22 декабря 2011

Я пытаюсь выполнить следующий код PHP:

$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 в контексте анонимной функции в качестве аргумента другой функции?

1 Ответ

5 голосов
/ 22 декабря 2011

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

Проблема заключается здесь: вторая закрывающая скобка.

...