您好我正在作为laravel初学者工作,我在中间看到了一个功能 功能如下:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check())
{
return redirect('/home');
}
return $next($request);
}
Closure是什么,它做了什么?
答案 0 :(得分:24)
Closure是一个匿名函数。闭包通常用作回调方法,可用作函数中的参数。
如果您采用以下示例:
function handle(Closure $closure) {
$closure();
}
handle(function(){
echo 'Hello!';
});
我们首先在Closure
函数中添加handle
参数。这将提示我们handle
函数需要Closure
。
然后我们调用handle
函数并将函数作为第一个参数传递。
在$closure();
函数中使用handle
,我们告诉PHP执行给定的Closure
,然后echo 'Hello!'
也可以将参数传递给Closure
。我们可以通过更改Closure
函数中的handle
调用来传递参数。在这个例子中,我只是传递一个字符串,但这可以是任何变量。
句柄功能现在看起来像
function handle(Closure $closure) {
$closure('Hello World!');
}
我们现在还需要修改Closure
本身来获取参数。我们只需在函数中添加一个参数即可。然后我们将该变量传递给echo
。
该功能现在看起来像
handle(function($value){
echo $value;
});
将回复Hello World!
有关详细信息,请查看以下链接: