Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obiekt z wartościami :protected
Forum PHP.pl > Forum > PHP > Object-oriented programming
jaro61
Witam
Mam sytuację z którą się spotykam pierwszy raz. Wypisałem zawartość obiektu przy uzyciu funkcji print_r i otrzymałem coś takiego:

  1. stTab Object ( [index:protected] => 1 [label:protected] => Opis [moduleName:protected] => stProduct [actionName:protected] =>...


Jak wypisać np. wartość abel:protected questionmark.gif
Jak również dodać nowe pole, które będzie wyglądało tak samo, czyli nazwa:protected questionmark.gif
Zyx
Zadeklarować pole jako chronione. To są podstawy obiektówki i w każdym kursie/opisie/książce poświęconej obiektówce w PHP5 będziesz mieć to ładnie opisane prawie na samym początku.
JoShiMa
Jak wypisać? Albo metodą, która Ci wartość zwróci, albo funkcją magoczną __get()
KrzysiekWildfire
Tworzysz funkcję następującą funkcję:
  1. class Klasa {
  2. protected $_id;
  3. protected $_value;
  4.  
  5. public function __get ($name)
  6. {
  7. $method = 'get' . ucfirst($name);
  8. if (! method_exists($this, $method))
  9. throw new Exception('Nie znaleziono metody "'.$method.'"!');
  10. return $this->$method();
  11. }
  12.  
  13. public function getId(){
  14. return $this->_id;
  15. }
  16.  
  17. public function getValue(){
  18. return $this->_value;
  19. }
  20. }


i jeżeli chcesz się odwołać do wartości następująco:

  1. $klasa = new Klasa();
  2. echo $klasa->value;
  3. echo $klasa->id;
sarxos
Jeśli jesteś w stanie kontrolować kreację tych obiektów, to możesz stworzyć klasę potomną, która dziedziczy z stTab. Dodanie publicznego gettera dla tej zmiennej załatwi sprawę.
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.