Re: Get class name in static method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stut wrote:
Hi all,

I'm wanting to define a static method on a base class that then instantiates and returns an object of the type the static method was called on. I've searched the docs and Googled but everything I find says it's not possible and I just wanna check to make sure before I admit defeat.

Say I have the following...

   class Foo
   {
       public static function & Create()
       {
          $classname = ???;
          return new $classname;
       }
   }

   class Bar extends Foo { }

   $obj = Bar::Create();

What do I put where the ???s are? I've tried __CLASS__ and get_class() but both give me the base class name. Short of passing the classname to the static function I'm at a loss as to how to do this. However, Bar::Create('Bar') is a bit too sucky for me to be happy with it and kinda defeats the object.

(purpose not object ;-)

either suck on it or use another language :-P.
this _PROBLEM_ exists since day 1 of php5 - there is no decent solution.

there has been discussion of this problem on the internals mailing list,
most of them seem to agree something is required here but no definite
fix has been implemented.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux