Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Widzialne zmiany wprowadzone z innego obiektu
mrKrecik
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 9.05.2005

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


Witam. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Od niedawna mam pewien problem. Otóż załóżmy, że mamy klasy a, b i c.
Klasa c to klasa główna która po kolei tworzy obiekty a i b.
Klasa a dziedziczy klasę c i np. definiuje: $this -> foo = 'bar';
Klasa b również dziedziczy klasę c i wyświetla na ekranie $this -> foo;
Niestety na ekranie nie pokazuje się 'boo'. :/

Mniej więcej tak by to wyglądało:
  1. <?php
  2. class a extends c
  3. {
  4. public funcion __construct()
  5. {
  6. $this -> foo = 'bar';
  7. }
  8. }
  9.  
  10. class b extends c
  11. {
  12. public funcion __construct()
  13. {
  14. echo $this -> foo;
  15. }
  16. }
  17.  
  18. class c
  19. {
  20. public $foo;
  21. public funcion __construct()
  22. {
  23. new a;
  24. new b;
  25. }
  26. }
  27. ?>


Mógłby ktoś powiedzieć w czym jest problem oraz ew. jak go rozwiązać?

z góry dziękuję za odpowiedzi.
pozdrawiam
mrKrecik

Ten post edytował mrKrecik 6.01.2007, 17:38:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Athlan
post
Post #2





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat
Nom niby wiem co to singleton, ale nie wiem jak to wykorzystać w moim problemie.


Są przynajmniej 2 sposoby. Do Twojego bardziej pasuje Registry:
http://forum.php.pl/index.php?s=&showt...st&p=325122
Ale nie jest błędem użyć zwykłego singletona - ta sama zasada:
http://webcity.pl/webcity/artykuly.php/t/62
Jeżeli wybierzesz singleton, wypadałoby aby klasa A otrzymała nowy atrybut protected static $_oSingleton = null; oraz metodę protected __construct() i jakąś do zwrócenia singletona.

Zastosowanie...
  1. <?php
  2. // ...
  3. protected static $_oInstance = null;
  4. // ...
  5. public static function run()
  6. {
  7. if(!(self::$_oInstance instanceof self))
  8. self::$_oInstance = new self;
  9.  
  10. return self::$_oInstance;
  11. }
  12. // ...
  13. ?>


Ważnym działaniem jest instrukcja warunkowa w metodzie Run().

Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 17:24