ID: 38992 Comment by: andrea at 3site dot it Reported By: matthew at zend dot com Status: Assigned Bug Type: Feature/Change Request Operating System: Debian SID on i686 PHP Version: 5.1.6 Assigned To: johannes New Comment:
I suppose this isn't a bug since PHP 5 inherits classes public static methods too (and they call them ... feature ... ). $r->invoke(new MyClass, array()); This should be expected bahaviour or there's something wrong on this "bogus": http://bugs.php.net/bug.php?id=40886 If this bug will be solved, PHP developers should think about *difference* between public static methods and instances methods, that are two different things, expecially without overload possibility changing arguments or using __call too, that in this case, isn't "so magic", IMHO. Previous Comments: ------------------------------------------------------------------------ [2006-09-29 13:15:51] matthew at zend dot com Description: ------------ ReflectionMethod::invoke() and ReflectionMethod::invokeArgs() implementations currently do not support the same functionality. Currently, ReflectionMethod::invoke() can be called using a string class name as the first argument *if* the method is declared static. However, ReflectionMethod::invokeArgs(), called the same way, raises a warning and does not invoke the method: Warning: ReflectionMethod::invokeArgs() expects parameter 1 to be object, string given Calling with a string class name is undocumented currently, but a useful feature to have. I'd request that invokeArgs() be made to match the current invoke() functionality, and the documentation updated to indicate this usage. Reproduce code: --------------- <?php class MyClass { public static function doSomething() { echo "Did it!\n"; } } $r = new ReflectionMethod('MyClass', 'doSomething'); $args = array(); $r->invoke('MyClass', array()); $r->invokeArgs('MyClass', $args); Expected result: ---------------- Did it! Did it! Actual result: -------------- Did it! Warning: ReflectionMethod::invokeArgs() expects parameter 1 to be object, string given in ... line 13 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38992&edit=1
