获取方法的参数?

Posted

技术标签:

【中文标题】获取方法的参数?【英文标题】:Get method's arguments? 【发布时间】:2011-03-24 04:35:11 【问题描述】:

我可以像这样检查对象的所有可用方法:

$methods = get_class_methods($object);

但是我如何才能看到哪些参数必须发送到这些方法?

有这个功能吗?

【问题讨论】:

【参考方案1】:

你可以使用reflection...

$r = new ReflectionMethod($className, $methodName);
$params = $r->getParameters();
foreach ($params as $param) 
    //$param is an instance of ReflectionParameter
    echo $param->getName();
    echo $param->isOptional();

【讨论】:

如果您只想知道需要多少个参数,请使用getNumberOfRequiredParametersphp.net/manual/en/… 有什么方法可以成功返回被接受的参数吗?例如,如果它接受一个字符串,列出接受的字符串? @GregL:引擎没有“列出它接受的字符串”的概念。具体来说,没有办法告诉引擎它应该首先接受一个字符串。您只能提示数组、对象(通过类名)和回调(可调用提示)。 您可以尝试解析 PHPDoc,这并不容易,您的团队必须就声明“接受的字符串”的格式达成一致。示例:gonzalo123.com/2011/04/04/reflection-over-phpdoc-with-php 只是为了 110% ......不,120% 清楚 -- @AngelS.Moreno 是在讽刺。我不会否认反射所阐明的信息很有用的罕见情况,但对于 99.999% 的行业价值代码,它们不会让你在代码审查会议上被钉死在十字架上,反射根本没有立足之地。

以上是关于获取方法的参数?的主要内容,如果未能解决你的问题,请参考以下文章

java 通过反射怎么获取方法中参数值

用JS获取地址栏参数的方法

java如何获取方法参数名

Java如何获取方法参数中的名称

Linux shell 脚本 间接获取输入参数的方法

struts2如何获取请求参数