laravel框架中使用static::$app->make是什么意思

laravel框架中为什么可以使用static::的写法,难道有个叫static的类,然后访问一个静态方法make吗?
但是static是关键字,不可能作为类名吧
具体位置在vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php

class Auth extends Facade
{
    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor()
    {
        return 'auth';
    }

    /**
     * Register the typical authentication routes for an application.
     *
     * @return void
     */
    public static function routes()
    {
       static::$app->make('router')->auth();
    }
}
阅读 5k
2 个回答

可以搜索一下 延迟静态绑定

static:: 对变量一般是指当前对象下的变量
比如说 父类有个属性 叫 xxx,子类也有个属性叫xxx,
父类有个方法doxxx,
当子类调用doxxx 这个方法时,
doxxx 里面去 static::xxx 就是取到的子类的,而不是父类的。
laravel 这个$app应该是指当前应用这个大对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题