首頁 > 後端開發 > php教程 > Laravel原始碼裡面為什麼要用::class文法?

Laravel原始碼裡面為什麼要用::class文法?

WBOY
發布: 2023-03-03 10:34:02
原創
2123 人瀏覽過

自 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 的容器概念了來。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板