PHP kézikönyv Előző Következő Ezek a függvények PHP osztályokról és objektumpéldányokról adnak információkat, mint például: az objektum osztályának nevét (típusát), a tagváltozóit másnéven tulajdonságait, és metódusait is. Ezekkel a függvényekkel egy objektumnak nem csak az osztály-tagságát lehet megállapítani, hanem a származását is, azaz, melyik osztályt kiterjesztése az adott objektum osztály. Ebben a példában definiálunk egy alap osztályt, és ennek egy kiterjesztését. Az alap osztály leír egy zöldséget (Zoldseg), meghatározva, hogy ehető-e vagy sem (eheto), és hogy milyen színű. Az alosztály a paraj (Paraj) hozzáad egy új metódust, hogy megfőzhesd, és egy másikat, hogy megállapítsd, hogy főtt-e. Példa 1. classes.inc ?php / / alap osztály tulajdonságokkal és metódusokkal class Zoldseg {var $eheto; var $szin; function Zoldseg ($eheto, $szin="zöld ") {$this - eheto = $eheto; $this - szin = $szin;} function eheto_e() {return $this - eheto;} function milyen_szinu() {return $this - szin;}} / / vége a Zoldseg osztálynak / / kiterjesztjük az alap osztályt class Paraj extends Zoldseg {var $megfozve = false; function Paraj() {$this - Zoldseg (true, "zöld");} function fozes() {$this - megfozve = true;} function fott_e() {return $this - megfozve;}} / / vége a Paraj osztéynak? Most két példányt létrehozunk a fenti osztályokból, és információkat írunk ki rólunk, beleértve az származásukat is. Definiálunk néhány hasznos függvényt, főleg azért, hogy ezeket az információkat szépen írjuk ki. Példa 2. test_script.php pre ?php include "classes.inc"; / / hasznos függvények function valtozok_kiirasa($obj) {$tomb = get_object_vars($obj); while (list($tul, $ertek) = each($tomb)) echo "\t$tul = $ertek\n";} function metodusok_kiirasa($obj) {$tomb = get_class_methods(get_class($obj)); foreach ($tomb as $metodus) echo "\tfunction $metodus()\n";} function os_osztaly($obj, $osztaly) {global $$obj; if (is_subclass_of($$obj, $osztaly)) {echo "A $obj a". get_class($$obj). "osztályhoz tartozik,"; echo "ami a $class egy alosztálya.\n";} else {echo "A $obj nem tartozik $class egy alosztályához.\n";}} / / két objektumpéldány létrehozása $karalabe = new Zoldseg(true ,"kék"); $soklevelu = new Paraj(); / / objektuminformációk kiírása echo "karalabe: CLASS ". get_class($karalabe). "\n"; echo "soklevelu: CLASS ". get_class($soklevelu); echo" PARENT ". get_parent_class($soklevelu). "\n"; / / a karalábé tulajdonságai echo "\nkaralabe: Tulajdonságok\n"; valtozok_kiirasa($karalabe); / / a soklevelű paraj metódusai echo "\nsoklevelu: Metódusok\n"; metodusok_kiirasa($soklevelu); echo "\nSzülők:\n"; os_osztaly("soklevelu", "Paraj"); os_osztaly("soklevelu", "Zoldseg");? / pre Fontos észrevenni, hogy a fenti példában a $soklevelu a Paraj objektum egy példánya, amely a Zoldseg egy alosztálya objektumnak, ezért a programunk utolsó része a következőt írja ki (szerencsére nincs probléma a névelőkkel:) [...] Szülők: A soklevelu nem tartozik Paraj egy alosztályához. A soklevelu a paraj osztályhoz tartozik, ami a Zoldseg egy alosztálya. Előző Tartalom Következő Fel