Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazanie wartości pola z klasy do klasy
Rudi1204
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 2
Dołączył: 11.03.2007

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


Witam. Załóżmy, że mamy klasy:
  1. class Base {
  2. public $zmienna1;
  3. public $zmienna2=array();
  4.  
  5. public function __construct() {
  6. $this->zmienna1 = $_GET['zmienna1'];
  7. }
  8.  
  9. public function ustawZmienna2() {
  10. // robie tutaj zapytanie np do bazy z użyciem $this->zmienna1;
  11. $this->zmienna2 = $mysql_result;
  12. }
  13. }
  14.  
  15. class Second extends Base {
  16. public $key;
  17. public $klon;
  18.  
  19. public function setKey($key) {
  20. $this->$key = $key;
  21. }
  22.  
  23. public function klonuj() {
  24. $this->klon = $this->zmienna2[$this->key];
  25. return $this->klon;
  26. }
  27. }
  28.  
  29. // i teraz wyołanie
  30. $klasa = new Base();
  31. $klasa->ustawZmienna2();
  32.  
  33. $inna_klasa = new Second();
  34. $inna_klasa->setKey('jakis_klucz');
  35. $wynik = $innaKlasa->klonuj();
  36.  

i teraz pytanie...
Czy jest jakaś możliwość, aby podczas dziedziczenia przekazać do klasy Second() otrzymaną już wcześniej wartość pola $this->zmienna2 , np by ponownie nie łączyć się z bazą i nie wykonywać chociażby formatowania wyniku (tak np).
Tak jakby co na google szukałem, ale kto wie może źle sformuoływałem pytanie?

Ten post edytował Rudi1204 29.04.2011, 08:27:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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

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


1. Obiekty nigdy nie powinny korzystać z czegokolwiek z przestrzeni globalnej (patrz użycie $_GET) - to prowadzi zawsze do problemów nawet w przypadku niezbyt rozbudowanych aplikacji.
2. Jeden obiekt jedno zadanie. Utwórz osobny obiekt reprezentujący żądanie HTTP, osobny pobierający dane z bazy danych.
3. Pamiętaj że dziedziczenie to rodzaj relacji jest (is a), natomiast Ty masz tutaj wszędzie co najwyżej relację ma (has a), tak więc obiekty powinieneś jawnie wstrzyknąć jako zależności.

Ten post edytował Crozin 29.04.2011, 08:54:38
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: 4.10.2025 - 13:53