Есть
private static $instance = null
И есть
public static function getInstance(){
if (self::instance === null){
self::instance = new self();
}
return self::instance;
}
То есть мы помещаем в переменную instance объект класса и потом через getInstance получаем этот объект, а не создаем каждый раз. Это удобно, но нужно использовать только там где стоит. Например для подключения к базе данных.