From: baldurien at bbnwn dot eu Operating system: Windows XP SP2 PHP version: 5.2.0 PHP Bug Type: Scripting Engine problem Bug description: ReflectionMethod is not an subclass of ReflectionFunction
Description: ------------ The doc (http://fr.php.net/manual/en/language.oop5.reflection.php) state that ReflectioMethod be a ReflectionFunction. class ReflectionFunction implements Reflector { } class ReflectionMethod extends ReflectionFunction { } But this is not how it works in PHP : when using type hinting, any ReflectionMethod passed to a function or method that expect a ReflectionFunction fails instead of working like with normal type hinting. Reproduce code: --------------- class Foo { public function bar(ReflectionFunction $fct) { ... } } $c = new ReflectionClass('Foo'); $foo = new Foo(); $foo->bar($c->getMethod('bar')); Expected result: ---------------- This should work because ReflectionMethod is a sub class of a ReflectionFunction, and type hinting normally allows such thing (or the documentation [http://fr.php.net/manual/en/language.oop5.typehinting.php] should say it clearly...) Actual result: -------------- [E_RECOVERABLE_ERROR] Argument 1 passed to Foo::bar() must be an instance of ReflectionFunction, instance of ReflectionMethod given, called in ... on line ... and defined' in ... -- Edit bug report at http://bugs.php.net/?id=40223&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=40223&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=40223&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=40223&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=40223&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=40223&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=40223&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=40223&r=needscript Try newer version: http://bugs.php.net/fix.php?id=40223&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=40223&r=support Expected behavior: http://bugs.php.net/fix.php?id=40223&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=40223&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=40223&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=40223&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=40223&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=40223&r=dst IIS Stability: http://bugs.php.net/fix.php?id=40223&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=40223&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=40223&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=40223&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=40223&r=mysqlcfg