[ Pobierz całość w formacie PDF ]

wskaznik wskazuje jakikolwiek element.
Przedstawione funkcje wstępnie definiują zachowania iteratora, przez co wspomagają uży-
wanie takich iteratorów w naszym kodzie. Jednak najważniejszą cechą interfejsu Iterator
jest to, że jest on podstawowym elementem wszystkich klas iteratorów.
Inne klasy iteratorów
W kolejnych punktach przedstawiać będziemy najważniejsze klasy wywiedzione z klasy
Iterator. Dokładniejsze opisy tych klas, a także ich bardziej rozbudowaną listę, znalezć można
na stronach dokumentacji biblioteki SPL: http://www.php.net/~helly/php/ext/spl/main.html.
DirectoryIterator
Jak sugeruje nazwa, klasa DirectoryIterator jest klasÄ… implementujÄ…cÄ… interfejs Iterator
i pozwalajÄ…cÄ… na iterowanie po plikach znajdujÄ…cych siÄ™ w danym katalogu. Klasa ta ukry-
wa zestaw przydatnych funkcji pozwalających na odczytanie różnych informacji o plikach,
takich jak czas i data ich modyfikacji, rozmiar, typ, nazwa właściciela, pełna ścieżka do pliku,
oraz o innych uprawnieniach związanych z plikiem (nie jest to oczywiście pełna lista).
RecursiveIterator
Klasa RecursiveIterator pozwala na iterację rekursywną, czyli automatyczne wywoływa-
nie tej samej funkcji do momentu, aż zostanie spełniony pewien warunek. Funkcje ofero-
wane przez tę klasę umożliwiają sprawdzenie, czy istnieją już iteratory potomne i określenie
ich typów.
ArrayIterator
Za pomocą wbudowanej klasy ArrayIterator możemy modyfikować wartości i klucze tabli-
cy w czasie iterowania po elementach obiektu. Funkcje takie jak append(), copy() lub seek()
pozwalają programiście na rozszerzenie typowego zestawu funkcji tablicowych.
Iteratory są cały czas poprawiane i rozbudowywane, dlatego w języku PHP 5.1 można spo-
dziewać się wprowadzenia w nich wielu zmian.
22 S:\ Sylwia\pdf\Linux, Apache, MySQL i PHP. Zaawansowane programowanie\01.doc

Rozdział 1. Co nowego w PHP 5 23
Konstruktory i destruktory
W PHP 4 można było wywołać pewną metodę klasy przy tworzeniu obiektu  wystar-
czyło nadać metodzie nazwę identyczną z nazwą klasy. W PHP 5 tę samą funkcję spełnia
 magiczna metoda o nazwie __construct(). Jeżeli zostanie ona dodana do klasy, to będzie
automatycznie wywoływana na rzecz każdego nowo tworzonego obiektu.
Podobnie, obiekt jest niszczony przez wywołanie metody __destruct() dołączonej do defi-
nicji klasy. Metoda ta wywoływana jest też automatycznie w sytuacji, gdy nie będzie już
żadnej referencji wskazującej na dany obiekt albo w momencie zakończenia pracy przez
skrypt PHP.
W rozdziale 2. podamy więcej szczegółowych informacji na temat konstruktorów i de-
struktorów.
Modyfikatory dostępu
Teraz możemy kontrolować poziom widoczności poszczególnych elementów składo-
wych klasy. Pozwalają na to trzy słowa kluczowe wprowadzone do PHP 5: public, private
i protected. Za ich pomocą możemy oznaczać, że metody i pola klasy będą publiczne, pry-
watne lub chronione.
Poniżej przedstawiamy skrócony opis tych trzech słów kluczowych (więcej szczegółów na
ich temat podamy w rozdziale 2.):
public  tak oznaczone metody i pola dostępne są w całym skrypcie. Można z nich
korzystać wewnątrz obiektu, ale i poza nim.
protected  metody i pola oznaczone jako chronione dostępne są tylko wewnątrz
obiektów danej klasy lub klas z niej wywiedzionych.
private  metody i pola prywatne dostępne są wyłącznie w obiektach danej klasy,
co oznacza, że nie można z nich korzystać w obiektach klas wywiedzionych.
SÅ‚owo kluczowe final
Słowo kluczowe final może być dodawane do całej klasy albo do metod tej klasy. Jeżeli zo-
stanie dodane do klasy, to zablokuje możliwość dalszej rozbudowy tej klasy przez dziedzi-
czenie. Jeżeli jednak zostanie dodane do metody klasy, to uniemożliwi klasom wywiedzionym
pokrywanie tej metody. W ten sposób metoda jest zabezpieczana przed ewentualnymi zmia-
nami wprowadzanymi przez innych programistów.
SÅ‚owo kluczowe static
Zadeklarowanie pola lub metody klasy z wykorzystaniem słowa kluczowego static powo-
duje połączenie tego pola lub metody z klasą i uniezależnienie od jakiegokolwiek obiektu lub [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • michalrzlso.keep.pl