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

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

$methods = get_class_methods($object);

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

有这个功能吗?

【问题讨论】:

    标签: php class object methods arguments


    【解决方案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% 的行业价值代码,它们不会让你在代码审查会议上被钉死在十字架上,反射根本没有立足之地。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2011-10-09
    • 2016-10-21
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多