自 PHP 5.5 起,關鍵字 class 也可用於類別名稱的解析。使用 ClassName::class 你可以取得一個字串,包含了類別 ClassName 的完全限定名稱。這對使用了 命名空間 的類別尤其有用。
<code>$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 ); </code>登入後複製登入後複製這段bootstrap/app.php程式碼中既然已經寫了類別的完全限定名,為什麼還要用::class語法?
自 PHP 5.5 起,關鍵字 class 也可用於類別名稱的解析。使用 ClassName::class 你可以取得一個字串,包含了類別 ClassName 的完全限定名稱。這對使用了 命名空間 的類別尤其有用。
<code>$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 ); </code>登入後複製登入後複製這段bootstrap/app.php程式碼中既然已經寫了類別的完全限定名,為什麼還要用::class語法?
知乎上有人給了正確的答案https://www.zhihu.com/questio...
這個是型別 AppHttpKernel,是一個類別的物件型別;
這個是類別的類別名稱字串 AppHttpKernel::class,是字串。
這個問題你先理解 Laravel 的容器概念了來。