== Quote from Greg Beaver ([EMAIL PROTECTED])'s article > <?php > class foo { > static function bar() > { > echo 'hello'; > } > } > > $bar = 'hello'; > $a = new foo; > $a->bar(); // this could be disabled to error out easily > $a::bar(); // my patch now allows this to print "hello" > $a::$bar(); // this also works > $a::{'bar'}(); // even this works > ?>
The idea is good, but the syntax "$a::bar()" seems to me that $a is the name of the class, not an instance. I would prefer that PHP supports: $class = get_class($a); $class::bar(); or, to make it shorter: get_class($a)::bar(); Anyway, if you need to call a class method, but you only know an instance of it, this is certainly because the class was not properly defined. A class method is a method that applies to the class, not instances. And a method that does not need to use $this is not necessarily a class method. Stephane -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php