En una clase PHP5, ¿cuándo se llama a un constructor privado?

Digamos que estoy escribiendo una clase PHP (> = 5.0) que está destinada a ser un singleton. Todos los documentos que he leído dicen que el constructor de la clase es privado para que la clase no se pueda instanciar directamente.

Entonces, si tengo algo como esto:

class SillyDB
{
  private function __construct()
  {

  }

  public static function getConnection()
  {

  }
}

¿Hay algún caso donde se llame a __construct () que no sea si estoy haciendo un

new SillyDB() 

llamar dentro de la clase en sí?

¿Y por qué se me permite instanciar SillyDB desde dentro de sí mismo?

Respuestas a la pregunta(5)

Su respuesta a la pregunta