PHP匿名函数
介绍
匿名函数是没有任何用户定义名称的函数。这样的函数也称为闭包或lambda函数。有时,您可能希望功能一次使用。Closure是一个匿名函数,它在定义它的环境中关闭。您需要在其中指定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 . "\n"; } ?>
输出结果
这将产生以下结果。-
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