php 闭包表达式详解
PHP 闭包表达式详解
闭包简介
闭包是一种匿名函数,它可以访问创建它的函数作用域中的变量。这种特殊的特性使其在 PHP 中非常有用,因为它允许将功能封装到一个可以作为变量传递的独立单元中。
闭包语法
创建闭包的语法如下:
立即学习“PHP免费学习笔记(深入)”;
$closure = function ($arg1, $arg2, ..., $argN) { // 闭包体};
实战案例:传递闭包作为回调函数
闭包经常用作回调函数,即在函数调用完成后执行的其他函数。例如,array_filter() 函数可以接受一个闭包作为回调函数,该闭包将决定是否保留数组中的每个元素:
$numbers = [1, 2, 3, 4, 5, 6, 7];$filteredNumbers = array_filter($numbers, function($number) { return $number % 2 === 0;}); // [2, 4, 6]
在这种情况下,闭包以匿名函数的形式传递给 array_filter(),接收一个数字参数并返回 true(表示应该保留该数字)或 false(表示应该从数组中删除该数字)。
闭包变量的作用域
闭包可以访问创建它们的函数作用域中的变量。这意味着闭包可以在创建它们的函数中对变量进行读写:
function counter() { $count = 0; return function() use ($count) { $count++; return $count; };}$increment = counter();echo $increment(); // 1echo $increment(); // 2
在上面的例子中,闭包 $increment 访问并递增 $count 变量,即使它是在函数 counter() 之外调用的。