自 php 5.5 起,关键词 class 也可用于类名的解析。使用 classname::class 你可以获取一个字符串,包含了类 classname 的完全限定名称。这对使用了 命名空间 的类尤其有用。
$app->singleton( illuminate\contracts\http\kernel::class, app\http\kernel::class);$app->singleton( illuminate\contracts\console\kernel::class, app\console\kernel::class);$app->singleton( illuminate\contracts\debug\exceptionhandler::class, app\exceptions\handler::class);
这段bootstrap/app.php代码中既然已经写了类的完全限定名,为什么还要用::class语法?
回复内容: 自 php 5.5 起,关键词 class 也可用于类名的解析。使用 classname::class 你可以获取一个字符串,包含了类 classname 的完全限定名称。这对使用了 命名空间 的类尤其有用。
$app->singleton( illuminate\contracts\http\kernel::class, app\http\kernel::class);$app->singleton( illuminate\contracts\console\kernel::class, app\console\kernel::class);$app->singleton( illuminate\contracts\debug\exceptionhandler::class, app\exceptions\handler::class);
这段bootstrap/app.php代码中既然已经写了类的完全限定名,为什么还要用::class语法?
知乎上有人给出了正确的回答https://www.zhihu.com/questio...
这个是类型 app\http\kernel,是一个类的对象类型;
这个是类的类名字符串 apphttpkernel::class,是字符串。
这个问题你先理解 laravel 的容器概念了来。
