&reftitle.examples; W tym przykładzie najpierw zdefiniujemy bazową klasę i jej rozszerzenie. Klasa bazowa opisuje ogólne warzywo, czy jest jadalne oraz jego kolor. Podklasa Szpinak dodaje metodę pozwalającą go ugotować, i drugą, która pozwala dowiedzieć się, czy jest ugotowany. Definicje klasy Warzywo jadalne = $jadalne; $this->kolor = $kolor; } public function czyJadalne() { return $this->jadalne; } public function pobierzKolor() { return $this->kolor; } } ?> ]]> Szpinak Warzywo(true, "zielone"); } public function ugotuj() { $this->ugotowane = true; } function czyUgotowane() { return $this->ugotowane; } } ?> ]]> 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. test_script.php $wart) { echo "\t$wlasc = $wart\n"; } } function drukujMetody($obj) { $tab = get_class_methods(get_class($obj)); foreach ($tab as $metoda) { echo "\tfunkcja $metoda()\n"; } } function przodkowieKlasy($obj, $klasa) { if (is_subclass_of($obj, $klasa)) { echo "Obiekt należy do klasy " . get_class($obj); echo ", a subclass of $klasa\n"; } else { echo "Obiekt nie należy do podklasy $klasa\n"; } } // tworzymy 2 egzemplarze obiektów $warzywko = new Warzywo(true, "niebieski"); $lisciaste = new Szpinak(); // wydrukujemy informację o obiektach echo "warzywko: KLASA " . get_class($warzywko) . "\n"; echo "lisciaste: KLASA " . get_class($lisciaste); echo ", PRZODEK " . get_parent_class($lisciaste) . "\n"; // pokażmy właściwości warzywka echo "\nwarzywko: Właściwości\n"; drukujWlasciwosci($warzywko); // i metody liściastego echo "\nliściaste: Metody\n"; drukujMetody($lisciaste); echo "\nPrzodkowie:\n"; przodkowieKlasy($lisciaste, Szpinak::class); przodkowieKlasy($lisciaste, Warzywo::class); ?> ]]> &examples.outputs; 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: