@Div-Man

Почему ругается на создание объекта?

Access to undeclared static property: FileLogger::$logers

<?php 
	class FileLogger {
		public $lines = [];
		//массив всех созданных объектов-журналов
		static public $loggers = [];
		
		//время создания объекта
		private $time;
		
		private function __construct($fname) {
			//запоминаем время создания этого объекта
			$this->time = microtime(true);
		}
		
		//открытый метод, предназначенный для создания объектов класса.
		//Создать новый объект можно только с его помощью
		
		public static function create($fname) {
			//Вначале проверяем: возможно, объект для указанного имени 
			//файла уже существует? Тогда его и возвращаем.
			
			if(isset(self::$loggers[$fname])) {
				return self::$logers[$fname];
			}
			
			//А иначе создаём полностью новый объект и сохраняем ссылку
			//на него в статическом массиве
			return self::$loggers[$fname] = new self($fname);
		}
		
		//возвращаем время создания объекта
		public function getTime() {
			return $this->time;
		}
		
		//дальше могут идити остальные методы класса
	}
	
	
	$logger1 = FileLogger::create("file.log");
	$logger2 = FileLogger::create("file.log");
	
	echo $logger1->getTime();
	echo $logger2->getTime();
?>


а именно на return self::$logers[$fname]; когда в массиве уже что-то есть
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 1
@D3lphi
Поиграем в игру "Найди 10 отличий"?
$loggers
$logers
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы