--TEST-- Test ReflectionMethod::getClosure() function : error functionality --FILE-- bar ); } } // Initialize classes $class = new ReflectionClass( 'Example' ); $staticclass = new ReflectionClass( 'StaticExample' ); $method = $class->getMethod( 'foo' ); $staticmethod = $staticclass->getMethod( 'foo' ); $object = new Example(); $fakeobj = new StdClass(); echo "\n-- Testing ReflectionMethod::getClosure() function with more than expected no. of arguments --\n"; var_dump( $staticmethod->getClosure( 'foobar' ) ); var_dump( $staticmethod->getClosure( 'foo', 'bar' ) ); var_dump( $method->getClosure( $object, 'foobar' ) ); echo "\n-- Testing ReflectionMethod::getClosure() function with Zero arguments --\n"; $closure = $method->getClosure(); echo "\n-- Testing ReflectionMethod::getClosure() function with Zero arguments --\n"; try { var_dump( $method->getClosure( $fakeobj ) ); } catch( Exception $e ) { var_dump( $e->getMessage() ); } ?> ===DONE=== --EXPECTF-- *** Testing ReflectionMethod::getClosure() : error conditions *** -- Testing ReflectionMethod::getClosure() function with more than expected no. of arguments -- object(Closure)#%d (1) { ["this"]=> NULL } object(Closure)#%d (1) { ["this"]=> NULL } Warning: ReflectionMethod::getClosure() expects exactly 1 parameter, 2 given in %s on line %d NULL -- Testing ReflectionMethod::getClosure() function with Zero arguments -- Warning: ReflectionMethod::getClosure() expects exactly 1 parameter, 0 given in %s on line %d -- Testing ReflectionMethod::getClosure() function with Zero arguments -- %unicode|string%(72) "Given object is not an instance of the class this method was declared in" ===DONE===