名前空間付きクラス名
クラスが属する名前空間とクラス名を結合したもの。
FQSENと違って、クラス名の先頭に\が付かない
ただしクラス名を要求する文脈で先頭に\を付けても多くの場合は問題なく許容される
::classで生成できる → ::class
型チェッカーによってはclass-string型という擬似型として扱われる
ユースケース
クラスのインポート
useによるクラスのインポートに用いられる。
code:use-class.php
<?php
use A;
use X\Y;
クラス名マジック定数
名前空間に属するコードでuseせずに::classマジック定数を使うと意図しない出力になるので注意。
code:MyApp.php
<?php
namespace MyApp\Http;
var_dump(B\C::class); //=> string(14) "MyApp\Http\B\C"
var_dump(\B\C::class); // => string(3) "B\C"