Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zasięg zmiennych OOP
Forum PHP.pl > Forum > Przedszkole
Kloc
Siemanko, muszę dostać się do zmiennej w klasie, która jest poza nią.

  1. $zmiennaPoZaKlasa = 'Jestem zmienna spoza klasy';
  2.  
  3. class mojaKlasa{
  4. public function mojaMetodaPrywatna(){
  5. echo '<p>To jest zmienna spoza klasy '.$zmiennaPoZaKlasa.'</p>'; //nic sie nie wyswietla :(
  6. }
  7. }
  8.  
  9. $class = new mojaKlasa;
  10. $class->mojaMetodaPrywatna();
  11.  
zielu001
  1. $class->mojaMetodaPrywatna($zmiennaPoZaKlasa);
  2. public function mojaMetodaPrywatna($zmienna){
  3.  
  4. }

blink.gif
Kloc
A do zmiennej z innej klasy w innej klasie?

  1. class mojaKlasa {
  2. public function mojaMetoda(){
  3. $zmienna = 1;
  4. }
  5. }
  6.  
  7. $class = new mojaKlasa;
  8. $class->mojaMetoda();
  9.  
  10. class mojaKlasa2 {
  11. public function mojaMetoda2(){
  12. echo $zmienna; //nic sie nie wyswietla :(
  13. }
  14. }
  15.  
  16. $class2 = new mojaKlasa2;
  17. $class2->mojaMetoda2();
zielu001
Użyj np. dziedziczenia
by_ikar
Cytat(Kloc @ 30.11.2014, 14:49:22 ) *
A do zmiennej z innej klasy w innej klasie?


Zależy co chcesz osiągnąć.
Pyton_000
albo gettery abo publiczna zmienna
Kloc
Możecie mi pokazać jak powinno to wyglądać na powyższym przykładzie, bo próbuje i wali mnie błędami na prawo i lewo biggrin.gif
irmidjusz
Słuchaj, przewodnia idea jest taka, że w klasie unikasz bezpośredniego odwoływania się do zmiennych poza klasą, albo pól innych klas (zgroza) smile.gif Jeśli coś trzeba zrobić związanego z takim polem innej klasy, to być może powinna być do tego odpowiednia metoda w takiej klasie. Jeśli już faktycznie potrzebujesz pobrać wartość takiego pola, to do tego ta klasa, w której jest to pole (nie-publiczne, rzecz jasna) może udostępniać metodę pobierającą (zwyczajowo się na to mówi getter).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.