搜索

首页  >  问答  >  正文

laravel - 定义中间件时的Closure $next怎么理解

<?php
    namespace App\Http\Middleware;
    use Closure;
    class TestMiddleware
    {      

        public function handle($request, Closure $next)
            if($request->input('age')<18)
                return redirect()->route('refuse');
            return $next($request);
        }
    }

上面这段代码中,
1) 第三行的use Closure 中的closure是类?怎么来的?
2)第六行的handle方法中 Closure $next是什么意思?
3)第9行的 $next($request),这是什么用法?$next到底是函数还是变量?

迷茫迷茫2737 天前652

全部回复(2)我来回复

  • 滿天的星座

    滿天的星座2017-05-16 16:56:35

    Closure是php自带的用于代表匿名函数的类!!去php手册看看你就明白你问的这几个问题了。

    回复
    0
  • PHP中文网

    PHP中文网2017-05-16 16:56:35

    Closure 是php实现闭包(匿名函数)用的类。
    http://php.net/manual/zh/class.closure.php
    $next是绑定的函数。

    回复
    0
  • 取消回复