Пока не видел такого. Обычно в конструкторе пишут код, который проверяет создан ли уже экземпляр класса (синглтон) и если создан не дают создать новый.
class Singleton
{
private static Singleton $instance;
private function __construct() {}
private function __clone() {}
public static function instance(): self
{
if (!isset(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
class StaticClass
{
private function __construct() {}
private function __clone() {}
}
Знаю про это. Но пока до конца не понимаю позднее статическое связывание.