Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]klasa pochodna i dostęp do zmiennych
xsalok
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.01.2016

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


Mam problem z dostępem do zmiennej klasy bazowej z klasy pochodnej:

Przykładowo są 2 pliki:

klasa_rodzic.php
  1. class Rodzic{
  2.  
  3. protected zmienna1=NULL;
  4.  
  5. public function setZmienna1($zmienna){
  6.  
  7. $this->zmienna1 = $zmienna1;
  8. }
  9.  
  10. public function getZmienn1(){
  11. return $this->zmienna1;
  12. }
  13.  
  14. }


oraz:

klasa_potomek.php

  1. use Rodzic;
  2.  
  3. class Potomek extends Rodzic{
  4.  
  5. protected $dane = array("zmienna2" => NULL);
  6.  
  7. public function setZmienna2(){
  8. $this->$this->dane["zmienna2"] = $this->zmienna1;
  9. }
  10.  
  11. public function getZmienna2(){
  12. return $this->zmienna2;
  13. }
  14.  
  15. }


w pliku głównym, powiedzmy index.php część odpowiadająca za wywołanie wygląda tak:

  1. $rodzic = new Rodzic();
  2. $rodzic->setZmienna1($value);
  3.  
  4. $potomek = new Potomek();
  5. $potomek->setZmienna2();
  6. $wartosc = $potomek->getZmienna2();


poniższa zmienna $wartosc jest niestety pusta

Może ma ktoś ochotę wytłumaczyć mi dlaczego tak się dzieje?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Rysh
post
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Bo to dwa różne obiekty. Ustawiasz w pierwszym zmienną, ale jej nie dziedziczysz przecież.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





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

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


Co to za potworek:

$this->$this->

Popraw literówki.

Poza tym jak kolega wyżej wspomniał. Jedno do drugiego nic nie ma.

Ten post edytował Pyton_000 27.07.2016, 12:39:13
Go to the top of the page
+Quote Post
xsalok
post
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.01.2016

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


próbowałem też robić to w ten sposób

  1. $this->zmienna2 = parent::getZmienna1();


Literówki mogą się zdarzyć, bo napisałem przykład. W głównym projekcie ich nie ma. Zastanawiałem się tylko dlaczego przekazuje mi pustą zmienną...
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





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

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


Dostałeś już odpowiedź.

Tworzysz 2 obiekty i na obu działasz oddzielnie. Żadnym magicznym sposobem zmienne z Obj` nie znajdą się dostępne w Obj2
Go to the top of the page
+Quote Post
xsalok
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.01.2016

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


Liczyłem na to, że istnieje jakiś sposób przekazania zmiennych z klasy rodzica do klasy pochodnej. Szkoda , dzięki za pomoc.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 16:15