使用 use() 的数组过滤器回调参考
Array filter callback reference with use()
我想知道如何结合使用 use() 方法和对回调的引用:
array_filter($array, function($value) use($external_parameter) {
// Return ...
});
如何将 use() 方法与对回调的引用一起包含在内?
array_filter($array, 'custom_callback_function'); // Where use()?
您需要在函数声明中包含 use
,例如:
function foo() use ($bar) { ... }
但这实际上行不通,因为 a) 它在语法上不受支持,并且 b) 从逻辑上讲,您当时不知道变量名称,而且当时它可能不在范围内。您的函数最多可以接受一个附加参数:
function foo($bar, $baz) { ... }
然后您捕获一个变量并将其传递给 foo
,如下所示:
array_filter($array, function (...$args) use ($bar) { return foo($bar, ...$args); })
我想知道如何结合使用 use() 方法和对回调的引用:
array_filter($array, function($value) use($external_parameter) {
// Return ...
});
如何将 use() 方法与对回调的引用一起包含在内?
array_filter($array, 'custom_callback_function'); // Where use()?
您需要在函数声明中包含 use
,例如:
function foo() use ($bar) { ... }
但这实际上行不通,因为 a) 它在语法上不受支持,并且 b) 从逻辑上讲,您当时不知道变量名称,而且当时它可能不在范围内。您的函数最多可以接受一个附加参数:
function foo($bar, $baz) { ... }
然后您捕获一个变量并将其传递给 foo
,如下所示:
array_filter($array, function (...$args) use ($bar) { return foo($bar, ...$args); })