PHP中的“use”关键字是否可以在闭包上下文中使用匿名函数?

时间:2011-12-21 20:13:37

标签: php closures anonymous-function reduce

我正在尝试执行以下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 个答案:

答案 0 :(得分:5)

  

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

问题在于:第二个右括号。