A függvényekről
    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.
   
Egy használati példa
    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 :)