ООП class persistance

zxxz

Новичок
Прошу прощения если повторяюсь.
Вопрос по OOП. Есть класс БАНК для хранения общих данных в private массиве и piblic functions для сохранения и получений данных из массива. В другогом классе ДРУГОЙ создаётся новый объект класса U]БАНК[/U], в методе класса сохраняем данные в класс U]БАНК[/U] и сразу же вытаскиваем данные из массива(для проверки) всё работает. В классе ДРУГОЙ в новой функции запрашиваем те же самые данные тем же самым способом как и в первом случае, возвращяется пустой массив. Почему? Что почитать что бы разобраться.?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
zxxz
привести куски кода надо
 

zxxz

Новичок
Класс U]БАНК[/U] :
private $data;
//constructor
public function bank(){
$this->data=array();
}

//set/get
public function __set($name, $value) {
if($name!=null&&$value!=null){
$this->data[$name] = $value;}
}

public function __get($name){
if(array_key_exists($name, $this->data)){
return $this->data[$name];
}//if

Класс ДРУГОЙ:
//constructor
$this->bank = new bank();

function Other(){
//bla bla
$this->bank->__set("data", $toSave);
$temp=$this->registre->__get("data");
}

function Other_other(){
//bla bla
$temp=$this->registre->__get("data");// бабац, а там уже ничего нет
echo $temp;
}

результат эха:Array[data]
 

craz

Нестандартное звание
вы написали какой то фееричный п.ц - два конструктора к примеру

PHP:
//constructor
$this->bank = new bank();

function Other(){
//bla bla
$this->bank->__set("data", $toSave);
$temp=$this->registre->__get("data");
}
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Есть подсветка синтаксиса, и я не просил сюда постить кривые незакрытые тэги BB. Код из класса копипастом сюда, весь, как есть.
 

craz

Нестандартное звание
и вообще ТС о наследование что нить знает?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Одному мне кажется, что __xxx методы, тут неуместны?
 

zxxz

Новичок
Класс U]БАНК[/U] :
public function __get($name){
if(array_key_exists($name, $this->data)){
return $this->data[$name];
}//if
else{return var_dump($this->data[$name]);}//Notice: Undefined index: ......on line 18 NULL
}//_get
В функции Other()- выводит то что должно.
 

zxxz

Новичок
и вообще ТС о наследование что нить знает?ТС знает, а толку то.
Я же вроде ничего не наследую. Один объект запрашивает проперти другого через публик функцию.
 

zxxz

Новичок
Главное если бы не работало везде. А то в одной функции работает а в соседний нет.
 

craz

Нестандартное звание
-Эх.. Главное если бы не работало везде. А то в одной функции работает а в соседний нет.
*он посыпает голову пеплом и идет в дворники потому как даже вопрос задать не может нормально на форуме, о чем дальше разговаривать
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
craz
Не может задать вопрос так, чтобы получить на него ответ. Форматировать код не умеет, о чем дальше говорить. Читать эту кашу, у меня желания нет.
 

zxxz

Новичок
craz, ты не парся. Это же у меня, а не у тебя что то не работает.Кода много если хочешь скину на мыло в виде зипа. Оно тебе надо?
Зачем затевать перебранку- вопрос останется не решенным. Спросил как умел.
 

craz

Нестандартное звание
я и не парюсь, пока не придумали супер интерпритатора/компилятора исполняющего ваш псевдокод. просто вы задаете вопрос, значит вы расчитываете на помощь, я пытаюсь помочь, значит расчитываю на то, что вопрос зададут нормально
 

HraKK

Мудак
Команда форума
Помощь и ответ я уже скинул, если ТС не в состоянии прочитать по ссылке и выполнить все что там написано - значит сам себе злобный буратино
 
  • Like
Реакции: craz

tiger-nick

Новичок
PHP:
class bank{
  private $data;

  //constructor
  public function bank(){
    $this->data=array();
  }

  //set/get
  public function __set($name, $value) {
    if($name!=null&&$value!=null){
    $this->data[$name] = $value;}
  }

  public function __get($name){
    if(array_key_exists($name, $this->data)){
    return $this->data[$name];
  }//if

class other{
  //constructor
  $this->bank = new bank();

  function Other(){
    //bla bla
    $this->bank->__set("data", $toSave);
    $temp=$this->registre->__get("data");
  }

  function Other_other(){
    //bla bla
    $temp=$this->registre->__get("data");// бабац, а там уже ничего нет
    echo $temp;
  }
}
Так должно быть?
 
Сверху