质量可靠
品质保障,精益求精
\
在 php 中,闭包可捕获外部变量。具体方法为:定义一个函数,返回一个闭包,在闭包中使用 use 关键字捕获外部变量。调用闭包即可使用外部变量。例如,获取指定用户年龄的闭包:定义一个函数返回闭包,在闭包中捕获用户数组。调用闭包,获取每个用户的年龄。
PHP 函数如何如何在闭包中捕获外部变量
在 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; }
输出:
25 30
以上就是PHP 函数如何在闭包中捕获外部变量?的详细内容,更多请关注本网内其它相关文章!