Когда я читаю код, написанный в рамках Laravel, я вижу много использования ClassName::class
. В чем смысл модификатора ::class
? Является ли это особенностью Laravel или PHP? Я искал, но не смог найти документацию.
Что означает класс ClassName:: PHP?
Ответ 1
С 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
Ответ 2
Он просто возвращает имя класса с пространством имен! Начиная с PHP 5.5 ключевое слово класса также используется для разрешения имен классов. Вы можете получить строку, содержащую полное имя класса ClassName, с помощью класса ClassName:: class. Это особенно полезно для классов с именами.
namespace NS {
class ClassName {
}
echo ClassName::class;
}
Вышеприведенный пример выводит:
NS\ClassName