[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Fatal error: Using $this when not in object contex
Лена
Стартую сессию так:
$session = Session :: getInstance($registry);

В сессию хочу передать объект реестра, чтобы вытянуть из него коннект с БД.

Сам класс выглядит так:
class Session {

private $table; //таблица сессий
private $sId;
private $UserId;
private $data;
private $db;

private function __construct() {

$this->table = 'sessions';
$this->sId = '';
$this->UserId = 0;
$this->data = array(); //данные по пользователю

}

static function getInstance(Registry $registry) {

if(!isset($session))
$session = new Session();

$this->db = $registry->get('DB');

if(!$session->getId())

$session->start();

return $session;
}


//удаление записи
function delete($sId) {

return (int)$this->db->query("DELETE FROM `" . $this->table . "` WHERE `id`='" . $sId . "' LIMIT 1") > 0;

}

//другие методы класса, где нужен объект реестра
}



Ругается на вот эту строку - $this->db = $registry->get('DB');

Fatal error: Using $this when not in object context

Как можно обойти?




Спустя 16 минут, 15 секунд (31.08.2012 - 21:34) Placido написал(а):
$this в статических методах не используется. Вместо этого используется self.
self::$db = $registry->get('DB');

Спустя 16 минут, 38 секунд (31.08.2012 - 21:51) Лена написал(а):
Про self как-то забыла.
Продолжает ругаться на эту строку:
Access to undeclared static property: Session::$db in

Спустя 20 минут, 55 секунд (31.08.2012 - 22:12) Placido написал(а):
Ну да. $db тоже должно быть статическим
private static $db;

Спустя 16 минут, 18 секунд (31.08.2012 - 22:28) Лена написал(а):
Спасибо, получилось. я статические методы и свойства редко использую.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.