class zawodnik { public $imie; public $nazwisko; public function przedstaw() { } } $player = new zawodnik(); $player->imie='Zenek'; $player->nazwisko='Kowalski'; $player->przedstaw();
Mam stworzoną klasę zawodnik która posiada dwa pola publiczne $imie i $nazwisko, oraz publiczną metodę przedstaw nie posiadającą żadnych argumentów, która jedynie wyświetli właściwości pola obiektu na którym zostanie wywołana?
operatorem
tworzę obiekt $player klasy zawodnik.
new
Kolejne dwie instrukcje nadają (teraz proszę o informację jak to nazywać), atrybuty, właściwości?....
, oraz
imie
, obiektowi $player.
nazwisko
Następnie na obiekcie $player wywołuję metodę przedstaw();
Na ekranie pojawia się: ZenekKowalski
Wszystko wydaje się być OK ale taki sam efekt jest w przypadku takiego kodu i pytanie brzmi dlaczego?
class zawodnik { public function przedstaw() { } } $player = new zawodnik(); $player->imie='Zenek'; $player->nazwisko='Kowalski'; $player->przedstaw();
Kolejne pytanie dotyczy metod klasowych __get i __set
książka vademecum profesjonalisty wyd.czwarte podaje kod ktory niczego nie wyświetla, jednak jest bardzo słabo opisane co się dzieje, w miarę możliwości proszę aby ktoś zorientowany mi to wytłumaczył
class nazwaklasy { public $atrybut; function __get($nazwa) { return $this->$nazwa } function __set($nazwa, $wartosc) { $this->$nazwa = $wartosc; } } $a = new nazwaklasy(); $a->$atrybut = 5 //dlaczego jest $ przed 'atrybut'?
$a->$atrybut; //pisza w ksiazce ze sie wywoła teraz __get jednak na ekranie nic nie ma nawet jak dodam echo
dziękuję