@sintez007
начинающий кодер

Что возвращает конструкция вида return [namespace::class];?

Есть класс Connection с нэймспэйсом "Engine\Core\Database". Есть также файл Service.php такого вида:
return [
  Engine\Service\Database::class  
];

В дальнейшем идет подключение циклом foreach сервисов
$services = require __DIR__.'/Config/Service.php';
    
    foreach($services as $service)
    {
        $provider = new service();
    }


Так что же означает конструкция Engine\Service\Database::class? Как она работает и где про это прочесть?
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
Константа class возвращает полное имя класса (включая namespace )
Ответ написан
Комментировать
@lnroma
Начиная с PHP 5.5.0 доступна специальная константа ::class, которой на этапе компиляции присваивается полное имя класса. Полезна при использовании пространств имен для классов:
php.net/manual/ru/language.oop5.constants.php
это значит Engine\Service\Database::class что он вернёт строку с названием класса к примеру 'Engine\Service\Database'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы