Esempio n. 1
0
        $this->time = microtime(true);
    }
    // Открытый метод, предназначенный для создания объектов класса.
    // Создать новый объект можно только с его помощью!
    public static function create($fname)
    {
        // Вначале проверяем: возможно, объект для указанного имени
        // файла уже существует? Тогда его и возвращаем.
        if (isset(self::$loggers[$fname])) {
            return self::$loggers[$fname];
        }
        // А иначе создаем полностью новый объект и сохраняем ссылку
        // на него в статическом массиве.
        return self::$loggers[$fname] = new self($fname);
    }
    // Возвращает время создания объекта.
    public function getTime()
    {
        return $this->time;
    }
}
// Пример использования класса.
#$logger = new FileLogger("a"); // Нельзя! Доступ закрыт!
$logger1 = FileLogger::create("file.log");
// ОК!
sleep(1);
// как будто бы программа немного поработала
$logger2 = FileLogger::create("file.log");
// ОК!
// Выводим времена создания обоих объектов.
echo "{$logger1->getTime()}, {$logger2->getTime()} ";