vis*_*iya 15 closures laravel laravel-5
您好我正在作为laravel初学者工作,我在中间看到一个功能,功能如下:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check())
{
return redirect('/home');
}
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
Closure是什么,它有什么作用?
小智 36
一个封闭是一个匿名函数.闭包通常用作回调方法,可用作函数中的参数.
如果您采用以下示例:
function handle(Closure $closure) {
$closure();
}
handle(function(){
echo 'Hello!';
});
Run Code Online (Sandbox Code Playgroud)
我们首先添加一个Closure
参数handle
函数.这将提示我们该handle
函数需要一个Closure
.
然后我们调用该handle
函数并将函数作为第一个参数传递.
通过$closure();
在handle
函数中使用我们告诉PHP执行给定的Closure
那个echo 'Hello!'
也可以将参数传递给a Closure
.我们可以通过更改函数Closure
中的handle
调用来传递参数.在这个例子中,我只是传递一个字符串,但这可以是任何变量.
句柄功能现在看起来像
function handle(Closure $closure) {
$closure('Hello World!');
}
Run Code Online (Sandbox Code Playgroud)
我们现在还需要修改Closure
自身以获取参数.我们只需在函数中添加一个参数即可.然后我们将该变量传递给echo
.
该功能现在看起来像
handle(function($value){
echo $value;
});
Run Code Online (Sandbox Code Playgroud)
哪个会回应 Hello World!
有关更多信息,请查看以下链接:
http://php.net/manual/en/functions.anonymous.php
http://php.net/manual/en/class.closure.php
归档时间: |
|
查看次数: |
19685 次 |
最近记录: |