Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z singletonem, a moze tu nie potrzeba singletonu?
emigo
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.10.2004
Skąd: Wschodnia Polska

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


W innym watku ktory zalozylem, poradzono mi zebym do mojego jadra w php uzyl singletonow. Poczytalem na forum tutaj o singletonach i albo cos zle zrozumialem, albo cos zle robie. Najlatwiej bedzie wyjasnic za pomoca kodu:

  1. <?php
  2. class engine {
  3. public static $instance;
  4. public $zmienna;
  5.  
  6. public function __construct() {
  7. $this->zmienna = 'wartosc 1';
  8. } 
  9.  
  10. public static function getInstance()
  11. {
  12. if (self::$instance === null) {
  13. self::$instance = new engine;
  14. } 
  15.  
  16. return self::$instance;
  17. } 
  18. } 
  19.  
  20. class news {
  21. public function __construct()
  22. {
  23. $silniczek = engine::getInstance();
  24. $silniczek->zmienna = 'wartosc 2';
  25. } 
  26. } 
  27.  
  28. $engine = new engine;
  29. echo $engine->zmienna;
  30. $module = new news;
  31. echo ' - ';
  32. echo $engine->zmienna;
  33. ?>


Po odpaleniu tego w przegladarce dostaje: 'wartosc 1 - wartosc 1', a chcialbym by bylo 'wartosc 1 - wartosc 2'. Czyli aby za pomoca $silniczek->zmienna nadpisac wartosc zmiennej klasy engine. Czy jest to mozliwe wogole w ten sposob? Czy do tego musze wykorzystac cos innego niz singletony?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
netzah
post
Post #2





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 19.03.2004

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


  1. <?php
  2.  
  3. ...
  4. $engine = engine::getInstance(); // <-------------------------
  5. echo $engine->zmienna;
  6. $module = new news;
  7. echo ' - ';
  8. echo $engine->zmienna;
  9.  
  10. ?>


miales 2 rozne obiekty ;-)
Go to the top of the page
+Quote Post
emigo
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.10.2004
Skąd: Wschodnia Polska

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


Dzieki za pomoc, teraz juz chyba zrozumialem dokladnie dzialanie singletonow - calkiem logiczne to jest, nie wiem jak sam do tego nie doszedlem ;-) Dzieki jeszcze raz.
Go to the top of the page
+Quote Post
bela
post
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


konstruktor powinien być prywatny ! i zmienna $instance tez ohmy.gif


--------------------
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: 22.08.2025 - 01:40