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
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Niestety - ale nie zrozumiałeś podstawowego założenia, jakie przyświeca programowaniu obiektowemu.

Wyobraź to sobie na przykładzie.

Klasa C to Krzesło (schemat krzesła)
Klasa A to KrzesłoDrewniane (projekt, jak je wykonać)
Klasa B to KrzesloMetalowe ( -||- )

Stolarz tworzy krzesło drewniane, na podstawie A, a DOPIERO potem maluje je na zielono.

Ślusarz produkuje krzesło metalowe, na podstawie B, a potem dziwi się, dlaczego nie są one od razu pomalowane. Nie sądzisz, że byłoby to nieco dziwne?

W twoim przypadku tak wygląda sytuacja z Foo, niezależnie od tego, że taki zapis nie jest zalecany (tego typu rekurencja wydaje się wręcz zupełnie absurdalna, jeśli nie błędna)
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: 11.10.2025 - 23:52