Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aktualizacja wlasciwosci w dwoch obiektach
radziel
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.04.2003
Skąd: Olsztyn

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


Mam cztery klasy, jedna inicjująca, druga główna która składa się z samych właściwości, i dwie "równorzędne" bez właściwości dziedziczące wszystkie po głównej Ilustruje to poniższy kod:

  1. <?php
  2. class a
  3. { 
  4. var $objB;
  5. var $objC;
  6.  
  7. var $strB = 'Halo, halo, tu B! </br>';
  8. var $strC = 'Halo, halo, tu C! </br>';
  9. }
  10.  
  11. class run extends a
  12. {
  13. function run()
  14. {
  15. $this->objB = new b;
  16. $this->objC = new c;
  17. }
  18. }
  19.  
  20. class b extends a
  21. {
  22. function CheckStrB()
  23. {
  24. echo $this->strB;
  25. }
  26.  
  27. function checkClassC()
  28. {
  29. $this->objC->Halo();
  30. }
  31. }
  32.  
  33. class c extends a
  34. {
  35. function CheckStrC()
  36. {
  37. echo $this->strC;
  38. }
  39.  
  40. function CheckStrB()
  41. {
  42. echo $this->strB;
  43. }
  44. function Halo()
  45. {
  46. echo 'zglasza sie klasa c!'.'</br>';
  47. }
  48. }
  49.  
  50. $run = new run();
  51.  
  52. $run->objB->CheckStrB(); //output: Halo, halo, tu B!
  53. $run->objC->CheckStrC(); //output: Halo, halo, tu C!
  54.  
  55. $run -> objB -> strB = 'Halo halo, zmienione B!'.'</br>';
  56. $run -> objB -> CheckStrB(); //output: 'Halo halo, zmienione B!'
  57. $run -> objC -> CheckStrB(); //output: 'Halo, halo, tu B!' <- zostaje stara wartosc!!
  58.  
  59. $run->objC->Halo(); //output: 'zglasza sie klasa c!'
  60. $run->objB->CheckClassC(); // Fatal Error :( , powinno byc 'zglasza sie klasa c!'
  61.  
  62. ?>


No właśnie. Chcę mieć możliwość odwoływania się do klas równorzędnych z tych klas tzn. klasa równorzędna -> klasa główna -> druga klasa równorzędna -> funkcja tej klasy. (ostatnia linijka kodu). Oraz mam problem z "bierzaca aktualizacja" wlasciwosci klasy glownej tak, aby te aktualizacje byly odrazu widoczne w klasach rownorzednych niestety nie wychodzi mi to. Ma ktos pomysl jak to rozwiazac?
Na wiki.php.pl natrafiłem na wzorzec 'Obserwator'.Mysle ze tu tkwi rozwiazanie mojego problemu, ale nie moge zaimplementowac tego pod 4. Czy podarzam wogole w dobrym kierunku?
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: 23.12.2025 - 00:38