Name resolution ::classcan work with any imported namespaces: classes, interfaces, functions, ...
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";
echo C\Function_Foo::class, "\n";
echo C\Const_BARFOO::class, "\n";
echo UndefinedClass::class, "\n";
echo Function_Foo_Bar::class, "\n";
echo Const_BARFOO::class, "\n";
}
source
share