It's interesting to note that this function will treat optional parameters that come before a required parameter as required too. This is good since it allows you to verify that the function will be receiving enough parameters for the it to work, regardless where they are located.
<?php
class MyTest() {
public function test($a = null, $b) {}
public function test2($a = null, $b, $c = null) {}
}
$r = new \ReflectionMethod('MyTest', 'test');
$r2 = new \ReflectionMethod('MyTest', 'test2');
echo 'Test: ' . $r->getNumberOfRequiredParameters()); echo 'Test2: ' . $r->getNumberOfRequiredParameters()); ?>