Php 拉雷维尔的闭包是什么?

Php 拉雷维尔的闭包是什么?,php,laravel,laravel-5,closures,Php,Laravel,Laravel 5,Closures,我在Middleware中看到一个Laravel函数: public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { return redirect('/home'); } return $next($request); } 什么是Closure以及它的作用是什么?A是一个匿名函数。闭包通常用作回调方

我在Middleware中看到一个Laravel函数:

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check())
    {
       return redirect('/home');
    } 

    return $next($request);
}
什么是
Closure
以及它的作用是什么?

A是一个匿名函数。闭包通常用作回调方法,并且可以用作函数中的参数

如果您以以下示例为例:

function handle(Closure $closure) {
    $closure();
}

handle(function(){
    echo 'Hello!';
});
我们首先在
handle
函数中添加一个
Closure
参数。这将提示我们
句柄
函数采用
闭包

然后调用
句柄
函数,并将函数作为第一个参数传递

通过使用
$closure()
handle
函数中,我们告诉PHP执行给定的
闭包
,然后
会回显“Hello!”

也可以将参数传递到
闭包中
。我们可以通过更改
handle
函数中的
Closure
调用来传递参数。在本例中,我只传递一个字符串,但它可以是任何变量

handle函数现在看起来像

function handle(Closure $closure) {
    $closure('Hello World!');
}
handle(function($value){
    echo $value;
});
我们现在还需要修改
闭包
本身以获取参数。我们只需在函数中添加一个参数就可以做到这一点。然后我们将该变量传递给
echo

函数现在看起来像

function handle(Closure $closure) {
    $closure('Hello World!');
}
handle(function($value){
    echo $value;
});
这将回声
你好世界

有关更多信息,您可以查看以下链接:


闭包是一个包含在变量中的函数。
$next
。param
$next
之前的
Closure
是类型提示。问你下一个问题?我不明白。你能用布莱夫语解释一下吗?你需要先检查一下:好的,我现在没有任何选择……好的,那个链接对我很有用…谢谢你的努力!!