XII. Klasy/Obiekty
Wstęp
Te funkcje pozwalają uzyskać informacje o klasach i ich egzemplarzach, obiektach. Możesz uzyskać informację o nazwie klasy do jakiej należy obiekt, a także jej właściwości i metody. Używając tych funkcji możesz dowiedzieć się nie tylko do jakiej klasy należy obiekt, ale także ustalić jego przodków (np. jaką klasę rozszerza klasa tego obiektu).
Wymagania
Do zbudowania tego rozszerzenia nie są wymagane żadne zewnętrzne biblioteki.
Instalacja
By używać tych funkcji, nie trzeba niczego instalować. Są one częścią jądra PHP.
Konfiguracja uruchomieniowa
To rozszerzenie nie definiuje posiada żadnych dyrektyw konfiguracyjnych w pliku php.ini.
Typy zasobów
To rozszerzenie nie posiada żadnych rodzajów zasobów.
Stałe predefiniowane
To rozszerzenie nie posiada żadnych stałych.
Przykłady
W tym przykładzie najpierw zdefiniujemy bazową klasę i jej rozszerzenie.
Klasa bazowa opisuje normalne warzywo, czy jest jadalne czy nie
oraz jego kolor. Podklasa Szpinak
dodaje metodę
pozwalającą go zagotować i drugą, która pozwala dowiedzieć się, czy
jest zagotowany.
Teraz możemy stworzyć dwa egzemplarze tych klas i wydrukować informacje o nich, włączając w to informacje o przodkach. Zdefiniujemy także kilka użytecznych funkcji, głównie po to by uzyskać ładny wydruk zmiennych.
Przykład 2. test_script.php
|
Wartą odnotowania rzeczą w powyższym przykładzie jest to,
że obiekt $lisciaste
jest egzemplarzem klasy
Szpinak która to jest podklasą klasy
Warzywo, i tak ostatnia część powyższego
skryptu pokaże na wyjściu:
- Spis treści
- call_user_method_array -- Wywołuje metodę użytkownika zadaną z tablicą parametrów [przestarzałe]
- call_user_method -- Wywołuje metodę użytkownika na zadanym obiekcie [przestarzałe]
- class_exists -- Sprawdza czy klasa została zdefiniowana
- get_class_methods -- Zwraca tablicę nazw metod danej klasy
- get_class_vars -- Zwraca tablicę domyślnych właściwości klasy
- get_class -- Zwraca nazwę klasy zadanego obiektu
- get_declared_classes -- Zwraca tablicę z nazwami zdefiniowanych klas
- get_declared_interfaces -- Returns an array of all declared interfaces
- get_object_vars -- Zwraca tablicę asocjacyjną właściwości obiektu
- get_parent_class -- Pobiera nazwę klasy przodka dla obiektu lub klasy
- interface_exists -- Checks if the interface has been defined
- is_a -- Zwraca TRUE jeżeli obiekt jest tej klasy, lub ta klasa jest jednym z jego przodków
- is_subclass_of -- Zwraca TRUE jeżeli klasa jest jednym z przodków obiektu
- method_exists -- Sprawdza czy metoda klasy istnieje
- property_exists -- Checks if the object or class has a property