Rozdział 4. ♦ Tablice i obiekty 129
Rysunek 4.19. I J.L
skryptu z listingu 4.21
■ S1 1 S? I Li http://localhost/index.php
^ Rozpocznij przygód... ; J AWoainości
Nodce: Undefined variable: polel in E:\!\index.php on linę 13
Nodce: Undefined variable: pole2 in E:\i\index.php on linę 13 polel =, pole2 =
Jeśli nasza instalacja PHP ma włączoną opcję wyświetlania komunikatów, zobaczymy informację o niezdefiniowanych zmiennych polel i pole2. Instrukcja echo również nie spełnia swojego zadania nie wyświetlając wartości pól obiektu. Dzieje się tak dlatego, że występujące w instrukcji echo("polel = Spolel. pole2 - $pole2"): odwołania Spoi el i $pole2 zostały potraktowane jak odwołania do lokalnych zmiennych funkcji show o nazwach polel i pole2, a nie jak pola klasy klasal.
Aby wewnątrz klasy odwołać się do jej pól, trzeba użyć słowa this. Jest to specjalny wskaźnik wskazujący na bieżący obiekt. A zatem odwołanie $this->nazwa_pola oznacza pole znajdujące się w aktualnym obiekcie. Stąd prawidłowa postać funkcji show, wyświetlającej wartości pól klasy klasal, to: function showO {
echoCpolel - $this->po1el. poleź = $this->pole2");
}
Konstruktory to specjalne metody, wykonywane podczas tworzenia obiektów danej klasy. Wykorzystywane są do wykonywanie wstępnych zadań inicjacyjnych, jak np. przypisanie początkowych wartości polom obiektu. Definicja konstruktora wygląda tak jak definicja każdej innej metody, z tą różnica, że jego nazwa musi być zgodna z nazwą danej klasy, schematycznie:
class nazwa_klasy
function nazwa klasy O
//treść konstruktora
}
//pozostałe składowe klasy
}
Napiszmy zatem konstruktor dla powstałej w poprzednich przykładach klasy klasal i sprawdźmy jego działanie. Zadaniem tego konstruktora będzie przypisanie polu polel wartości początkowej 100, natomiast polu poi e2 — wartości początkowej równej 200. Takie czynności wykonuje skrypt zaprezentowany na listingu 4.22.