Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obiekt z wartościami :protected
jaro61
post 24.03.2011, 15:30:57
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 20.02.2006

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Zyx
post 27.03.2011, 08:10:09
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


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.

Ten post edytował Zyx 27.03.2011, 08:10:52


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
JoShiMa
post 27.03.2011, 08:41:15
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Jak wypisać? Albo metodą, która Ci wartość zwróci, albo funkcją magoczną __get()


--------------------
Go to the top of the page
+Quote Post
KrzysiekWildfire
post 16.04.2011, 14:28:50
Post #4





Grupa: Zarejestrowani
Postów: 93
Pomógł: 11
Dołączył: 27.10.2010
Skąd: Kutno/Poznań

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


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;


Ten post edytował KrzysiekWildfire 16.04.2011, 14:29:40
Go to the top of the page
+Quote Post
sarxos
post 15.06.2011, 15:15:17
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.06.2011

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


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ę.
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:23