PHP 匿名函数

2025 年 6 月 12 日 | 阅读 4 分钟

在 PHP 中可以定义匿名函数。在 PHP 中,函数通常是通过为其命名来定义的,这样可以在需要时调用该函数。相反,在定义时没有名称的函数称为匿名函数。这类函数也称为 lambda 函数或闭包函数。

有时你可能需要一个只能使用一次的函数。为了建立一个内联回调函数,匿名函数是最常使用的。

要实现匿名函数,使用 Closure 类。Closure 是一个匿名的函数,它会封闭其定义的环境。

语法

下面是定义匿名函数的语法

我们可以看到,函数声明后面跟着一个分号,并且函数名不在 function 关键字和开括号之间。匿名函数的定义是表达式。一旦将匿名函数赋给一个变量,就可以使用该变量名来调用匿名函数。

示例

输出

 
Students sorted by score (highest to lowest):
Priya - 92
Neha - 89
Amit - 85
Karan - 76
Ravi - 68

Students who scored more than 80:
Priya - 92
Neha - 89
Amit – 85

匿名回调函数

回调函数经常使用匿名函数。其中一个函数的参数就是回调函数。在运行时执行的匿名函数的返回值将成为父函数(可以是用户定义的或内置函数)的参数。

示例

此示例中,在 usort() 函数(一个内置函数,它使用用户定义的比较函数按值对数组进行排序)中使用了一个匿名函数。

输出

 
Products sorted by price (Low to High):
Monitor - $200
Tablet - $300
Phone - $500
Laptop - $750

示例

在以下示例中,使用匿名函数确定数组中连续数字的累加总和。这里使用了 array_walk() 函数。此函数将用户定义的函数应用于每个数组元素。

输出

 
Cumulative Sum Array:
10
30
60
100
150

匿名闭包函数

闭包也是一个匿名函数,它使用 "use" 关键字来访问其作用域之外的变量。

示例

输出

 
Hello, Akhil!

匿名静态函数

可以声明匿名函数为静态的。这可以防止它们立即与当前类关联。在运行时,它们可能不会绑定到任何对象。

示例

在下面的示例中,我们尝试在静态匿名函数中使用 $this。

输出

 
Hello Akhil!

下一个主题PHP 内置函数