Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Metody magiczne __set i __get
Matado
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 9.12.2008

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


Nie mogę do końca zrozumieć kiedy wykorzystywać metody __set() i __get(). Wiem, że set() służy do przypisania wartości pola, którego nie ma w obiekcie, get(0 do odczytu tego pola.

Gdzie można te metody wykorzystać w praktyce?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Możesz uzyskać dostęp do zmiennych np. private czy protected, ale dla mnie to tylko wygoda.
  1.  
  2. class test {
  3.  
  4. private $tablica = array('klucz' => true, 'klucz2' => 666);
  5. private $innaZmienna = false;
  6.  
  7. public function __get($name) {
  8. if (array_key_exists($name, $this->tablica)) {
  9. return $this->tablica[$name];
  10. }else{
  11. // tutaj np. wyjątkiem możesz pluć
  12. }
  13. }
  14. }
  15.  
  16. $test = new test();
  17.  
  18. echo $test->klucz; // zamiast $test->tablica['klucz'] - które i tak wywołałoby błąd w tym przypadku.
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #3





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nie tylko wygoda, np. w obiekcie jakiegoś ORMa można dzięki temu zapisać które pola zostały zmodyfikowane i zapisać w bazie tylko te potrzebne.
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 - 14:44