Я только начинаю погружаться в php, работая на vb.net.
Я хочу написать класс логгера, который будет работать под моим именем в одном приложении, вот код:
class cLog{
private $data = NULL;
static private $instance = NULL;
static public function getInstance(){
if(self::$instance == NULL){
echo "empty!";
self::$instance = new cLog();
}
return self::$instance;
}
private function __construct(){
}
private function __clone(){
}
public function getData(){
return self::getInstance()->data;
}
public function trace($o){
self::getInstance()->data[] = $o;
}
}
Я ожидаю, что при переключении между страницами моего приложения, которые совершают несколько вызовов метода cLog :: trace (), массив данных увеличивается и заполняется всеми трассами. Но я получаю следующее: каждый раз, когда я запускаю страницу, $ instance имеет значение null, поэтому объект перезапускается (как вы можете видеть, я вставляю строку echo «empty!» В метод получения экземпляра: она отображается каждый раз)
Полагаю, в жизненном цикле приложения php есть что-то недопонимающее ...
Вот пример использования:
cLog::getInstance()->trace("hello world");
$logs = cLog::getInstance()->getData();
Спасибо