PHP 从命名空间内的函数获取参数

PHP get params from function inside of Namespace

我正在尝试获取存储在命名空间和 class 中的函数的参数(名称)。我试过 ReflectionFunction,但我只能在没有名称空间和 classes 的情况下使它工作。我尝试调用的函数是非静态的,这并没有使它变得更容易。

namespace app\http;

class Test {
   public function func(User $user, $id) {
     return $user;
   } 
}

我正在尝试从这里获取“user”和“id”。有人有什么建议吗?

使用:https://www.php.net/manual/en/reflectionfunctionabstract.getparameters.php

$ref = new ReflectionMethod(\app\http\Test::class, "func");

foreach ($ref->getParameters() as $param) {
    echo $param->getName();
}

$ref->getParameters() returns 一个 ReflectionParameter class 数组,它允许您获得更多信息,而不仅仅是名称; https://www.php.net/manual/en/class.reflectionparameter.php

您也可以使用 class 的字符串值:"\app\http\Test" 但特殊的 ::class 常量在不同的命名空间中更可靠(如果不使用完全限定名称) .

The special ::class constant allows for fully qualified class name resolution at compile time, this is useful for namespaced classes