::class名称解析可以使用任何导入的命名空间:类,接口,函数,…
namespace A\B\C {
interface Interface_Bar {}
function Function_Foo() {}
function Function_Foo_Bar() {}
const Const_BARFOO = 123;
}
namespace {
use A\B\C\Interface_Bar;
use A\B\C;
use Undefined\Classes\UndefinedClass;
use function A\B\C\Function_Foo_Bar;
use const A\B\C\Const_BARFOO;
echo Interface_Bar::class, "\n"; // print A\B\C\Interface_Bar
echo C\Function_Foo::class, "\n"; // print A\B\C\Function_Foo
echo C\Const_BARFOO::class, "\n"; // print A\B\C\Const_BARFOO
echo UndefinedClass::class, "\n"; // print Undefined\Classes\UndefinedClass
echo Function_Foo_Bar::class, "\n"; // print Function_Foo_Bar
echo Const_BARFOO::class, "\n"; // print Const_BARFOO
}