在 php 中,闭包可捕获外部变量。具体方法为:定义一个函数,返回一个闭包,在闭包中使用 use 关键字捕获外部变量。调用闭包即可使用外部变量。例如,获取指定用户年龄的闭包:定义一个函数返回闭包,在闭包中捕获用户数组。调用闭包,获取每个用户的年龄。
PHP 函数如何如何在闭包中捕获外部变量
在 PHP 中,闭包是可以访问包含其定义作用域的所有变量的函数。这使得闭包非常适合在需要保留外部作用域中数据的场景中使用。
以下是如何在闭包中捕获外部变量的方法:
// 定义一个函数,该函数返回一个闭包function createClosure($externalVariable) { // 返回一个闭包 return function() use ($externalVariable) { // 在闭包中使用外部变量 echo $externalVariable; };}// 创建一个闭包$closure = createClosure(‘外部变量’);// 调用闭包$closure(); // 输出:"外部变量"
实战案例
假设我们有一个包含用户信息的数组。我们可以使用闭包来遍历数组并获取每个用户的年龄:
$users = [ [‘name’ => ‘John’, ‘age’ => 25], [‘name’ => ‘Jane’, ‘age’ => 30],];// 定义一个函数,该函数返回一个闭包function getAgeClosure($users) { // 返回一个闭包 return function($user) use ($users) { // 查找给定用户在数组中的索引 $index = array_search($user, $users); // 如果用户存在,返回其年龄 if ($index !== false) {return $users[$index][‘age’]; } // 否则返回 -1 return -1; };}// 创建一个闭包$getAgeClosure = getAgeClosure($users);// 获取每个用户的年龄foreach ($users as $user) { echo $getAgeClosure($user) . PHP_EOL;}
输出:
2530
以上就是PHP 函数如何在闭包中捕获外部变量?的详细内容,更多请关注范的资源库其它相关文章!
转载请注明:范的资源库 » PHP函数如何在闭包中捕获外部变量?