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

Тема в разделе "PHP Pro", создана пользователем DOLARiON, 16 июл 2009.

Статус темы:
Закрыта.
  1. DOLARiON

    DOLARiON

    Регистр.:
    4 сен 2006
    Сообщения:
    191
    Симпатии:
    48
    имеем:

    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
     
  2. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    PHP:
    public static function getInstance() {
        if(
    null == self::$instance) {
            
    self::$instance = new self();
        }
        return 
    self::$instance;
    }
     
  3. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    по моему нужно сделать проверку на isset
     
  4. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Не забудь сделать:
    PHP:
    public static $instance null;
     
  5. DOLARiON

    DOLARiON

    Регистр.:
    4 сен 2006
    Сообщения:
    191
    Симпатии:
    48
    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: ошибочка... все пашет! СПС! :)
     
Статус темы:
Закрыта.