如何检查该类方法是否需要参数

Ole*_*hev 3 php class object

例如,有Foo类对象.不是try-catch表达式

class Foo {
   function Bar($a){
   }
}

$foo = new Foo();

if(hasRequiredParams(Object $foo, MethodName 'Bar')){
   do something;
}
Run Code Online (Sandbox Code Playgroud)

cmb*_*ley 6

你可以用反射做到这一点:

class Foo {
    function Bar($a) {
    }
}

$rc = new ReflectionClass('Foo');
$rm = $rc->getMethod('Bar');
var_dump($rm->getNumberOfRequiredParameters()); // 1
Run Code Online (Sandbox Code Playgroud)

但是,仅仅因为你可以这样做,这并不意味着你应该这样做.可能有理由需要在运行时检查方法签名,但在大多数情况下,您不应将此应用程序逻辑基于此信息.