Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Singleton i n-razy wykonywany destruktor
Mlodycompany
post
Post #1





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam. Mam pewną klasę którą wywołuje singleton'em. Singleton tworzy 1 obiekt poprawnie, konstruktor wykonuje się tylko raz, a destruktor niestety tyle razy ile pobieram instancję tej klasy. Jak pobiorę ją 3 razy to destruktor 3 razy się wykona. Wiecie może dlaczego tak jest?

PS. Jeżeli będzie potrzebny kod to zamieszczę ale wydaję mi się, że obejdzie się bez tego smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No jedynie mi pasuje to, że gdzieś klonujesz ten sam obiekt i jest on każdorazowo zwalniany.

Które PHP? Jaki kod do singletona?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #3





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


  1. private static $instance = false;
  2. public static function getInstance() {
  3. if (!self::$instance) {
  4. self::$instance = new klasa();
  5. echo 'instancja';
  6. }
  7. return self::$instance;
  8. }

to jest kod. Echo w nim zawarte printuje się tylko raz czyli instancja jest tworzona raz. I jeszcze mam zabezpieczenie przed klonowaniem
  1. private function __clone(){}



Wzasadzie to już rozwiązałem ten problem w inny sposób, a mianowicie zastąpiłem destruktor zwykłą metodą i wywołałem ją na końcu kontrolera, ale nadal mnie zastanawia dlaczego tak się działo
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Mógłbyś podać minimalną ilość kodu który rekonstruuje błąd? Tak byśmy mogli to uruchomić u siebie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 01:21