ID: 40223 Updated by: [EMAIL PROTECTED] Reported By: baldurien at bbnwn dot eu -Status: Verified +Status: Open Bug Type: Documentation problem Operating System: Windows XP SP2 PHP Version: 5.2.0 New Comment:
The documentation is wrong, both ReflectionMethod & ReflectionFunction extend abstract class called "ReflectionFunctionAbstract". Previous Comments: ------------------------------------------------------------------------ [2007-01-24 19:46:19] [EMAIL PROTECTED] (reclassified as documentation problem) The docs are wrong (and really outdated). ReflectionMethod and ReflectionFunction both extend ReflectionFunctionAbstract. (see: php --rc ReflectionMethod && php --rc ReflectionFunction or php --re reflection) ------------------------------------------------------------------------ [2007-01-24 19:39:00] baldurien at bbnwn dot eu 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 this bug report at http://bugs.php.net/?id=40223&edit=1