PHP kézikönyv
Előző
14.
Fejezet.
Osztályok, objektumok
Következő
Figyelem
Az alábbiak csak PHP 4-ben érvényesek.
Időnként hasznos az ősosztályok metódusaira vagy tulajdonságaira hivatkozni, vagy olyan osztálymetódusokat meghívni, amelyek nem példányosított objektumokhoz tartoznak.
A:: operátor erre használható.
class A {function pelda() {echo "Én az eredeti A::pelda() metódus vagyok. br \n";}} class B extends A {function pelda() {echo "Én a felüldefiniáló B::pelda() metódus vagyok. br \n"; A::example();}} / / nincs semmilyen objektum az A osztályból / / ez azonban ki fogja írni: / / Én az eredeti A::pelda() metódus vagyok. br A::pelda(); / / B egy objektuát hozzuk létre $b = new B; / / ez ki fogja írni: / / Én a felüldefiniáló B::pelda() metódus vagyok. br / / Én az eredeti A::pelda() metódus vagyok. br $b - pelda();
A fenti példa meghívja az A osztály pelda() metódusát, habár nincs konkrét példányunk az A osztályból, tehát ezt nem írhatnánk le az $a - pelda() -hoz hasonlóan.
Ehelyett a pelda() egy 'osztálymetódusként 'viselkedik, azaz az osztály egy függvényeként, és nem egy példány metódusaként.
Osztálymetódusok léteznek, de osztálytulajdonságok (változók) nem.
Mivel a hívás pillanatában semmilyen objektum nem létezik, egy osztálymetódus nem használhat objektum változókat, és egyáltalán nem használhatja a $this speciális referenciát.
Egy objektummetódus azonban természetesen dolgozhat globális változókkal és lokális változókkal is.
A fenti példa a B osztályban felüldefiniálja a pelda() metódust.
Az A osztálytól örökölt eredeti definíció eltűnik, és többé nem érhető el, hacsak nem az A osztályban megvalósított pelda() függvényre hivatkozol közvetlenül, a:: operátor segítségével.
Ennek eléréséhez A::pelda( )-t kell használni (ebben az esetben írhatnál parent::pelda()-t is, ahogy az a következő szakaszban olvasható).
Ebben a környezetben van aktuálisan használt objektum, és ennek lehetnek objektum változói (tulajdonságai).
Ekképpen ha egy objektummetóduson belül használod ezt az operátort, akkor alkalmazhatod a $this-t, és felhasználhatod az objektum tulajdonságait.
Előző
Tartalom
Következő
Konstruktor
Fel