глобальные данные - сохранение и чтение

Статус
В этой теме нельзя размещать новые ответы.

DOLARiON

Гуру форума
Регистрация
4 Сен 2006
Сообщения
191
Реакции
65
имеем:

PHP:
class GlobalStore {
    private $data;

    function __set($name, $value) {
        $this->data[$name]=$value;
    }

    function __get($name) {
        return $this->data[$name];
    }
}

соответственно в нужном месте делаем
PHP:
$ta = new GlobalStore();
$ta->test = "data";

echo $ta->test; // выведет data

вопрос
при следующем обращении в другом углу скрипта

PHP:
$ta = new GlobalStore();
echo $ta->test;

как сделать чтобы $ta->test сохранило значение "data"???

UPD:
мозги дошли до....
PHP:
class GlobalStore {
    public static $inst;
    
    function __construct(){
        self::$inst = $this;
    }
    public static function getInstance(){
        return self::$inst;
    }
    
    function __set($name, $value) {
        $this->inst[$name]=$value;
    }

    function __get($name) {
        return $this->inst[$name];
    }
}

PHP:
$a = GlobalStore::getInstance();
$a->test = "data";

$b = GlobalStore::getInstance();
echo $b->test;

но всеравно не пашет... $b->test = NULL
 
PHP:
public static function getInstance() {
    if(null == self::$instance) {
        self::$instance = new self();
    }
    return self::$instance;
}
 
по моему нужно сделать проверку на isset
 
Не забудь сделать:
PHP:
public static $instance = null;
 
PHP:
class GlobalStore {
	public static $instance = null;
	
	function __construct(){
		self::$instance = $this;
	}
	public static function getInstance() {
		if(null == self::$instance) {
			self::$instance = new self();
		}
		return self::$instance;
	}  
	
	function __set($name, $value) {
		$this->instance[$name]=$value;
	}
	
	function __get($name) {
		return $this->instance[$name];
	}
}


PHP:
$a = GlobalStore::getInstance();
$a->test = "data";

$b = GlobalStore::getInstance();
echo $b->test;
UPD: ошибочка... все пашет! СПС! :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху