gpt4 book ai didi

PHP 如何获取类方法参数的命名空间?

转载 作者:行者123 更新时间:2023-12-04 16:54:36 25 4
gpt4 key购买 nike

您好,我尝试了很多方法来捕获参数函数的命名空间,但什么也没有。

public function table(Homes $homes) { // <---------- Homes
return $homes->get('home');
}

我尝试使用 ReflectionClass 但只给我名称 $homes 而不是 Homes 命名空间。

最佳答案

这是可能的:

$method         = new ReflectionMethod('classDeclaringMethodTable', 'table');

// ReflectionMethod::getParameters() returns an *array*
// of ReflectionParameter instances; get the first one
$parameter = $declaringMethod->getParameters()[0];

// Get a ReflectionClass instance for the parameter hint
$parameterClass = $parameter->getClass();

然后在这一点上,这取决于你想要什么......
// Returns ONLY the namespace under which class Homes was declared
$parameterClass->getNamespaceName();

// Returns the fully qualified class name of Homes
// (i.e. namespace + original name; it may've been aliased)
$parameterClass->getName();

我使用了多个变量来使它更容易理解,但它可以很容易地成为带有方法链的单行。

关于PHP 如何获取类方法参数的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com