php - конструкторов - конструктор с параметрами java




Как получить тип параметра конструктора через отражение? (2)

Вы пытаетесь получить подсказку или реальный тип? Я не могу понять, почему вы можете захотеть получить подсказку, так как вы знаете, что это FooRepository, иначе PHP вызвал бы ошибку.

Вы можете получить фактический тип через get_class а также узнать, наследуется ли объект от данного класса с помощью ReflectionClass::isSubclassOf .

Я использую подсказки типа в моем списке параметров конструктора следующим образом:

public function __construct(FooRepository $repository)

Есть ли способ использовать PHP Reflection API для получения подсказки? Другими словами, я хочу функцию отражения, которую я могу вызвать, чтобы как-то вернуть строку «FooRepository». Я попытался получить конструктор с помощью отражения, а затем получить параметры, если конструктор, но я не вижу ничего, что даст мне строку подсказанного типа.


Попробуйте это.

class Foo {
    public function __construct(Bar $test) {
    }
}

class Bar {
    public function __construct() {
    }
}

$reflection = new ReflectionClass('Foo');
$params = $reflection->getConstructor()->getParameters();
foreach ($params AS $param) {
    echo $param->getClass()->name . '<br>';
}




reflection