Что означает класс ClassName :: PHP?

Когда я читаю код, написанный в рамках Laravel, я вижу много применений класса ClassName::class . В чем смысл модификатора ::class ? Является ли это особенностью Laravel или PHP? Я искал, но не смог найти документацию.

Начиная с PHP 5.5 ключевое слово класса также используется для разрешения имен классов. Вы можете получить строку, содержащую полное имя класса ClassName, с помощью ClassName::class . Это особенно полезно для классов с именами.

Например

 namespace MyProject; class Alpha{ } namespace MyOtherProject; class Beta{ } echo Alpha::class; // displays: MyProject\Alpha echo Beta::class; // displays: MyOtherProject\Beta 

Он просто возвращает имя класса с пространством имен! Начиная с PHP 5.5 ключевое слово класса также используется для разрешения имен классов. Вы можете получить строку, содержащую полное имя класса ClassName, с помощью класса ClassName :: class. Это особенно полезно для классов с именами.

 namespace NS { class ClassName { } echo ClassName::class; } 

Вышеприведенный пример выводит:

 NS\ClassName