【发布时间】:2016-05-27 16:14:42
【问题描述】:
我一直在学习使用 php 进行 Web 开发,但我对匿名函数有点困惑。特别是关于参数的传递以及它们如何在这样的函数中工作。 比如在代码中
$array = array("really long string here, boy", "this", "middling length", "larger");
usort($array, function($a, $b) {
return strlen($a) - strlen($b);
});
print_r($array);
我真的不明白参数$a 和$b 是如何使用的。我认为将它们用于比较是为了对数组进行排序,以便定义函数应如何使用它们并从中获取它们?
在类似下一个的代码中
$mult = function($x)
{
return $x * 5;
};
echo $mult(2);
我知道参数是直接传递给函数的,用来返回乘法的结果。
在这个post的例子中
$arr = range(0, 10);
$arr_even = array_filter($arr, function($val) { return $val % 2 == 0; });
$arr_square = array_map(function($val) { return $val * $val; }, $arr);
变量$val 取自哪里?
我知道这可能并不像看起来那么复杂,但我真的对在此类函数上使用参数感到困惑
【问题讨论】:
-
一般来说,您想查找外部函数的文档,例如 php 中的 array_map 或 javascript 中的 array.reduce 以了解哪些参数被传递到您要提供的回调中。
标签: php web-deployment anonymous-function