箭头( Arrow )函数是在 PHP 7.4 版本中引入的。箭头函数为编写匿名函数提供了一种更简单、更简洁的语法。在 PHP 7.4 中,引入了一个关键字 “fn” 来定义箭头函数,而不是传统的 “function” 关键字。
- “=>” 符号后面只有一个表达式,其值是箭头函数的返回值。
- 箭头函数没有显式的 return 语句。
- 与匿名函数一样,箭头函数被分配给一个变量以供调用。
例子
以下示例演示了如何在 PHP 中使用箭头函数 -
它将产生以下输出 -
x: 10 y: 20 Addition: 30
将 Arrow(箭头)函数用作回调函数
我们还可以将箭头函数用作回调函数。回调函数用作另一个函数的参数之一。箭头函数是动态执行的,“=>”后面的表达式的值成为父函数的参数,该函数可以是内置函数,也可以是用户定义的函数。
例子
在这个例子中,我们在 usort() 函数中使用了一个箭头函数,这是一个 built_in 函数,它使用用户定义的比较函数按值对数组进行排序。
它将产生以下输出 -
3
10
21
54
70
10
21
54
70
从父作用域中访问变量
箭头函数可以自动访问父作用域的变量。与匿名函数不同,“use” 关键字不需要充当闭包。在父作用域中定义表达式中使用的变量时,将按值隐式捕获该变量。
它将产生以下输出 -
Marks = 250 Percentage = 83.333333333333
例子
箭头函数会自动按值捕获变量,即使嵌套也是如此。
在下面的示例中,在另一个箭头函数的表达式部分定义了一个箭头函数。
它将产生以下输出 -
x:5 y:10
Result of nested arrow functions: 51
Result of nested arrow functions: 51
就像匿名函数一样,箭头函数语法允许任意函数签名,包括参数和返回类型、默认值、可变参数以及按引用传递和返回。