|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2018-03-05 11:12 UTC] benjamin dot morel at gmail dot com
Description: ------------ The ReflectionParameter constructor is documented as accepting a string only for the first parameter: http://php.net/manual/en/reflectionparameter.construct.php However, as mentioned in a comment on that page, it also accepts an array containing a class name and a method name. Test script: --------------- class Foo { function bar($baz) {} } $r = new ReflectionParameter(array('Foo', 'bar'), 'baz'); echo $r->getName(); Expected result: ---------------- public ReflectionParameter::__construct ( string|array $function , string $parameter ) Actual result: -------------- public ReflectionParameter::__construct ( string $function , string $parameter ) PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Dec 14 01:00:01 2025 UTC |
True, but it also accepts arrays representing private and non-static methods, which are not callable: --- class Foo { private function bar($baz) {} } function test(callable $function) {} $function = ['Foo', 'bar']; // works as expected echo (new \ReflectionParameter($function, 'baz'))->getName(); // Deprecated: Non-static method Foo::bar() should not be called statically // TypeError: Argument 1 passed to test() must be callable, array given test($function); --- What about callable|array then, with a note about acceptable arrays?