Minden osztálydefiníció a class kulcsszóval kezdődik, amit az osztály neve követ, ami bármi lehet, kivéve fenntartott szó a PHP-ban. Ez egy pár kapcsos zárójel ( { és } ) követ, ami tartalmazza az adattagok és metódusok definícióját. Az álváltozó, $this hozzáférhető amikor a metódust objektumon belül hívtuk meg. $this egy referencia a hívó objektumra (rendszerint az az objektum, amihez a metódus tartozik, de lehet más objektum is, ha a metódust statikusan hívtuk meg vagy másodlagos objektumból). Ezt mutatják be a következő példák:
Az alapértelmezett értéknek állandos (konstans) kifejezésnek kell lennie, nem (például) egy változó, osztály adattag vagy függvényhívás.
Példa 19-3. Osztály adattagok alapértelmezett értékei
|
Megjegyzés: Itt található néhány hasznos függvény osztályok és objektumok kezeléséhez. Ehhez nézdd meg a Osztály/Objektum Függvények részt.
Egy osztálypéldány létrehozásához új objektumot kell létrehozni és változóba tárolni. Az objektum mindig bekerül a változóba létrehozáskor, kivéve ha az új objektumnak van konstruktora, és ez kivételt (exception) dob vagy hibát okoz. Az osztályokat használat előtt kellene definiálni (és néhány esetben ez egy követelmény).
Amikor egy előre létrehozott objektumpéldányt tárolunk új változóba, az új változó hozzáfér ugyanahhoz a példányhoz, amit tároltunk. Így viselkedik akkor is, amikor az objetumpéldányt függvénynek adjuk át. Egy, már meglévő objektumnak a másolatát klónozással lehet elkészíteni.
Példa 19-5. Objektumok értékadása
A fenti példa a következő kimenetet adja:
|
Egy osztály örökölhet metódusokat és adattagokat már osztályoktól az extends kulcsszót használva az osztálydeklarációban. Nem lehetséges öröklös egyszerre több osztálytól, egy osztály egyszerre csak egy alap osztálytól örökölhet.
Az örökölt metódusok és adattagok felülírhatóak, hacsak nem ha azok a szülő osztályban a final kulcsszóval vannak definiálva, és ugyanazzal a névvel van definiálva a szülő osztályban. Lehetséges a hozzáférés a felülírt metódusokhoz és adattagokhoz ezeket renerenciaként használva a parent::-tal.
Példa 19-6. Egyszerű osztályöröklődés
A fenti példa a következő kimenetet adja:
|