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