Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Programowanie obiektowe w PHP, akcesory
Aardenon
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 28.08.2011

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


Witam,

Czytam rozdział nt. programowania obiektowego w PHP i czegoś tu nie rozumiem. Mam taki przykład:

  1. class nazwaklasy
  2. {
  3. public $atrybut;
  4. function __get($nazwa)
  5. {
  6. return $this->$nazwa
  7. }
  8. function __set($nazwa, $wartosc)
  9. {
  10. $this->$nazwa = $wartosc;
  11. }
  12. }


1. Skoro __get oraz __set to nazwy zastrzeżone, czy to oznacza że może istnieć tylko jedna para takich akcesorów dla klasy?
2. W jaki sposób mogę za pomocą jednej pary akcesorów przypisać wartości dla większej liczby atrybutów, np $atrybut1, $atrybut2, $atrybut3 ? Czy do tego służy konstrukcja ze zmienną $nazwa w powyższym przykładzie?
3. Dlaczego w powyższym przykładzie występuje zmienna $nazwa, skoro moim celem jest odczytanie lub ustawienie zmiennej $atrybut?
4. W książce jest przykład:
  1. $a = new nazwaklasy();
  2. $a->$atrybut = 5; //to wywołuje niejawnie akcesor __set

i w książce jest takie objaśnienie: "Instrukcja ta niejawnie wywoła funkcję __set() z wartością zmiennej $nazwa ustawioną na "atrybut" i z wartością równą 5". To skąd PHP wie, że zmiennej $nazwa ma przypisać zmienną $atrybut? Nie bardzo rozumiem tą konstrukcję.

Z góry dzięki za odpowiedzi,
PR.
Go to the top of the page
+Quote Post

Posty w temacie


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: 20.08.2025 - 11:29