加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

理解PHP的匿名函数

发布时间:2020-12-13 14:14:18 所属栏目:PHP教程 来源:网络整理
导读:我一直在使用php学习web开发,我对匿名函数有点困惑.特别是关于参数的传递以及它们如何在这样的函数内工作. 例如,在代码中 $array = array("really long string here,boy","this","middling length","larger");usort($array,function($a,$b) {return strlen($
我一直在使用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取自哪里?

我知道也许这并不像看起来那么复杂,但我真的很困惑在这种功能上使用参数

usort($array,$b) {
    return strlen($a) - strlen($b);
});

我们来看看这个例子吧.当您将函数传递给usort()时,PHP会在内部使用数组中的2个元素调用它,以查看哪个更大/更小.

$a和$b值来自usort()函数.它的代码用2个参数调用提供的函数.您的参数不需要命名为$a和$b,它们可以根据您的喜好命名.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读