>> public function __construct() > A singleton would usually have a private constructor to prevent > non-singleton instances. The problem being if the class in question derives from another class that has a public constructor... If you are in that particular situation (which I am), you're basically SOL and the statement above has no bearing. >> { >> echo 'singleTon::__construct()<br>'; >> if( !is_null( singleTon::$thisObj )) >> { >> echo '$thisObj already set. returning it...<br>'; >> return singleTon::$thisObj; >> } >> singleTon::$thisObj = $this; > 1) You don't return it unless it already exists, not that it matters because > this is the constructor and you can't return anything from that. > 2) The constructor has no involvement in management of the singleton > instance so this is just all wrong. I did this mainly to see if it would have any effect. >> public static function singleton() >> { > That method has the same name as the class. I'm not sure what effect this > will have but it's certainly to be discouraged. It has no effect. And yes, that is true in general, but this is just a test foobar class. > Here's the simplest example I can think of (untested, typed straight into my > mail client)... This won't work if derived from a class with a public constructor. That's why my test class' constructor was defined public. > Singletons are not rocket science, but as with all patterns you really need > to understand the theory before trying to implement and use it. Agreed. But apparently implementing them in PHP leaves things to be desired. thnx, Christoph -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php