Rya*_*yan 3 php scope callback count array-reduce
我正在尝试获得大于的数组值n.
我array_reduce()这样使用:
$arr = range(1,10);
echo array_reduce($arr, function ($a, $b) { return ($b > 5) ? ++$a : $a; });
Run Code Online (Sandbox Code Playgroud)
这打印出数组中元素的数量大于硬编码的元素5.
但是我怎么能做5变量$n呢?
我试过引入第三个这样的参数:
array_reduce($arr, function ($a, $b, $n) { return ($b > $n) ? ++$a : $a; });
// ^ ^
Run Code Online (Sandbox Code Playgroud)
乃至
array_reduce($arr, function ($a, $b, $n) { return ($b > $n) ? ++$a : $a; }, $n);
// ^ ^ ^
Run Code Online (Sandbox Code Playgroud)
这些都不起作用.你能告诉我如何在这里包含一个变量吗?
use*_*740 12
可以在"示例#3从父作用域继承变量"下的文档中找到捕获父值的语法function .. use.
..继承的变量从父范围[要求"使用"的形式和]是不一样的使用全局变量..封闭的父范围是在其中封闭件被宣布(不一定是函数,它被称为功能从).
在此协助下转换原始代码use是:
$n = 5;
array_reduce($arr, function ($a, $b) use ($n) {
return ($b > $n) ? ++$a : $a;
});
Run Code Online (Sandbox Code Playgroud)
哪里$n是"拿来主义"从外部词汇范围.
注意:在上面的示例中,提供了值的副本,并且未绑定变量本身.请参阅有关使用引用变量(例如&$n)的文档,以便能够并在父上下文中重新分配变量.
| 归档时间: |
|
| 查看次数: |
2553 次 |
| 最近记录: |