PHP中的闭包函数是嵌套在另一个函数中的匿名函数,可以访问外部函数的变量。使用use关键字可以在闭包函数中访问外部变量,可以在实战中应用于需要对列表中的每个元素应用折扣的场景。
PHP 函数中的闭包函数
闭包函数是嵌套在另一个函数中的匿名函数,它可以访问外部函数的变量,即使外部函数已经返回。闭包函数在 PHP 中非常有用,因为它允许创建可重复使用的代码块并保持对外部环境的访问。
创建闭包函数
要用 PHP 创建闭包函数,请使用 function
关键字,后跟一个可选的名称和参数列表:
$closure = function($arg1, $arg2) { // 函数体 };
闭包函数中的变量范围规则如下:
use
。使用 use
关键字
use
关键字用于将外部变量引入闭包函数中。例如:
function outerFunction($arg1) { $outerVar = '外部变量'; $closure = function() use ($arg1, $outerVar) { // 闭包函数可以访问 $arg1 和 $outerVar }; }
实战案例
假设您需要创建一个函数来对列表中的每个元素应用折扣。为此,您可以创建一个闭包函数来计算折扣金额:
function applyDiscount($list, $discountPercentage) { // 创建闭包函数来计算折扣 $discountClosure = function($item) use ($discountPercentage) { return $item - ($item * ($discountPercentage / 100)); }; // 将折扣闭包函数应用于列表中的每个元素 return array_map($discountClosure, $list); }
完整代码:
function outerFunction($arg1) { $outerVar = '外部变量'; $closure = function() use ($arg1, $outerVar) { // 闭包函数可以访问 $arg1 和 $outerVar echo "arg1: $arg1<br>"; echo "outerVar: $outerVar<br>"; }; // 调用闭包函数 $closure(); } applyDiscount([10, 20, 30], 10); // [9, 18, 27]
以上是PHP 函数的闭包函数如何创建?的详细内容。更多信息请关注PHP中文网其他相关文章!