Rozdział 4, ♦ Tablice i obiekty 129
Rysunek 4.19.
Efekt działania skryptu z listingu 4.21
Ełk Edycja ffidok |
Przejdź zakładki tfarządzla Pomot | ||
• • ' & |
| Lj http:/Jlocahost/index.php | ||
& Rozpocznij przygód,. |
. O Aktualności |
Notice: Undefined variable: polel in E:\!\index.php on linę 13
Notlce: Undefined variable: pole2 in E:\l\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 echoC"polel = Spolel. pole2 - $pole2''): odwołania Spolel i Spole2 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->/?aziva_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->polel. pole2 - $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 _k lasy O
i
//treść konstruktora
}
//pozostałe składowe klasy
1
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 pole2 — wartości początkowej równej 200.
Takie ć.7vnnnśr.i unłlrAniiia ------------