Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wywoływanie metod z klasy dziedziczonej
Solaris2001
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 24.07.2012

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


Witam. Mam taki problem:

Mam klasę Database która posiada zmienną $zmienna i metodę ShowVariable() wyświetlającą tą zmienną.
  1. class Database{
  2.  
  3. public $zmienna;
  4.  
  5. public function Connect(){
  6. $this->zmienna = 'Wartość.';
  7. }
  8.  
  9. public function ShowVariable(){
  10. echo $this->zmienna;
  11. }
  12. }


Klasa Communicates, która dziedziczy po klasie Database.
  1. class Communicates extends Database{
  2. public function DisplayComm(){
  3. $this->ShowVariable();
  4. }
  5. }


Teraz tworzę instancję do klasy Database i metodą Connect() ustawiam zmiennej $zmienna wartość.
  1. $database = new Database;
  2. $database->Connect();

Następnie tworzę instancję do klasy Communicates i wywołują metodę ShowVariable z klasy Database.
  1. $communicates = new Communicates;
  2. $communicates->DisplayComm();


Problem jest taki, że nic nie wyświetla. Podejrzewam, że problemem jest tutaj zmienna $zmienna klasy Database która traci swoją wartość.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Obiekt $database oraz obiekt $comuniactes to dwa rozne obiekty i nie mają ze sobą nic wspolnego, a juz na pewno nie mają wspolnych wartosci wlasciwosci. To są podstawy obietktowki: dwa obiekty to dwa obiekty i koniec.
To tak jakbys mial dwa koszyki obok siebie. Do jednego wkladasz jablko a potem sie glupio dziwisz, ze tego jablka nie ma w drugim koszyku....

Zrob se tak:
$communicates = new Communicates;
$communicates->Connect();
$communicates->DisplayComm();

To moze zrozumiesz.


Poza tym masz blad logiczny. Zadna klasa nie powinna dziedziczyc po klasie do obslugi bazy danych. To obiekt klasy do obslugi bazy danych, ma byc dostarczany do innych klas/obiektow bez dziedziczenia
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


A odnośnie samego tematu, żeby dobrać się do metod/właściwości obiektów które dziedziczymy używa się parent
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


O ile mamy zadeklarowana zmienna w klasie dziedziczacej i chcemy się odwołać do zmiennej z klasy dziedziczonej
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:43