+1

Nice to be able to do this directly without resorting to call_user_func().

Edom


Etienne Kneuss wrote:
> Hi,
> 
> I've already proposed that 1-2 months ago, but now seems to be a good
> time to discuss new things, so let's try again:
> 
> I believe it would be nice to be able to dynamically reference static
> members, constants, and methods.
> 
> Currently, there is no way to do that and the only way would be to
> create a static method and use call_user_func(array($classname,
> 'getThat'));
> 
> In other words:
> 
> class A {
>     public static $foo = 'value1';
>     const  gee = 'value2';
>     public static function bar() { return 'value3'; }
> 
>     // old way:
>     public static function getFoo() { return self::$foo; }
>     public static function getGee() { return self::gee; }
> 
> }
> 
> $classname = 'A';
> echo $classname::$foo;  // value1
> echo $classname::gee;   // value2
> echo $classname::bar(); // value3
> 
> // --- instead of: ---
> 
> $classname = 'A';
> echo call_user_func(array($classname, 'getFoo')); // value1
> echo call_user_func(array($classname, 'getGee')); // value2
> echo call_user_func(array($classname, 'bar'));    // value3
> 
> which is quite slow.
> 
> Please take a look at the patch[1] I made for it. Comments would be
> appreciated!
> 
> Regards,
> 
> 
> 1: http://patches.colder.ch/Zend/dynamic-static-calls.patch?markup
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to