PHP 匿名函数
phpserver side programmingprogramming更新于 2025/7/18 18:52:17
简介
匿名函数是指没有任何用户定义名称的函数。这种函数也称为闭包或lambda函数。有时,您可能希望函数只使用一次。闭包是指匿名函数,它会在其定义环境中关闭。您需要在其中指定 use 关键字。匿名函数最常见的用法是创建内联回调函数。
语法
$var=function ($arg1, $arg2) { return $val; };
- function 关键字和左括号之间没有函数名。
- 函数定义后面有一个分号,因为匿名函数定义是表达式。
- 函数被赋值给一个变量,之后使用该变量名调用。
- 当函数被传递给另一个函数,并且该函数之后可以调用它时,这被称为回调。
- 从外部函数中返回它,以便它可以访问外部函数的变量。这被称为闭包。
匿名函数示例
示例
<?php
$var = function ($x) {return pow($x,3);};
echo "cube of 3 = " . $var(3);
?>
输出
这将产生以下结果。−
cube of 3 = 27
匿名函数作为回调
以下示例中,匿名函数用作内置 usort() 函数的参数。usort() 函数使用比较函数对给定数组进行排序
示例
<?php
$arr = [10,3,70,21,54];
usort ($arr, function ($x , $y) {
return $x > $y;
});
foreach ($arr as $x){
echo $x . "
";
}
?>
输出
这将产生以下结果。−
3 10 21 54 70
匿名函数作为闭包
闭包也是一个匿名函数,可以借助 use 关键字访问其作用域之外的变量
示例
<?php
$maxmarks=300;
$percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;};
echo "marks=285 percentage=". $percent(285);
?>
输出
这将产生以下结果。−
marks=285 percentage=95

