posiadam 3 klasy:
<?php class MainData { //class pointers var $_db = null;; var $_cache = null; var $_connection = null; //(...) function MainData() {} function &GetInstance() { { $instance = new MainData(); } return $instance; } } class MainSingletonReference extends MainData { //class pointers var $_db; var $_cache; var $_connection; //(...) function MainSingletonReference() { { $instance =& MainData::GetInstance(); } foreach (get_class_vars(get_class($instance)) as $var => $value) { $this->$var =& $instance->$var; } } } class Main extends MainSingletonReference { function Main() { parent::MainSingletonReference(); $this->_db =& $db; //wszystko ok $maindata =& MainData::GetInstance(); echo $maindata->_db; //i tu jest problem... powinno zwrócić również Object, ale tak się nie dzieje :/ } //(...) } ?>
czy ktoś może wie gdzie jest błąd i jak to naprawić? ogólny pomysł był taki, żeby zmienne z klasy MainData były dostępne w innych klasach, ale żeby klasa MainData była singletonem, czyli, żeby zmienne nie były dublowane, a zmiana zmiennej klasie dziedziczącej powodowała zmianę w klasie MainData za pośrednictwem referencji w klasie MainSingletonReference, niestety tak się nie dzieje i zmienne z klasy MainData nie są zmieniane...
testowałem to pod php 4.4.0 i Win2k
ktoś ma jakieś pomysły?
z góry dzięki...