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.

Thanks.

-Stut

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

Reply via email to