Let's say I'm writing a PHP (>= 5.0) class that's meant to be a singleton. All of the docs I've read say to make the class constructor private so the class can't be directly instantiated.
So if I have something like this:
class SillyDB
{
  private function __construct()
  {
  }
  public static function getConnection()
  {
  }
}
Are there any cases where __construct() is called other than if I'm doing a
new SillyDB() 
call inside the class itself?
And why am I allowed to instantiate SillyDB from inside itself at all?