Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  PHP und OOP
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Metainformationen über Klassen und Objekte




Informationen, die man zur Laufzeit eines Skripts über eine Klasse oder eine von ihr abgeleitete Instanz erhalten kann, werden auch als Metainformationen bezeichnet.

Zu diesen Informationen zählen beispielsweise die Namen der Klasse von Objekten, die Namen sämtlicher Superklassen und Subklassen, sowie die Namen der Methoden einer Klasse.

In der folgenden Tabelle sind die seit PHP 4 zur Verfügung stehenden Funktionen zur Ermittlung der Metainformationen über Klassen und Objekte, aufgeführt.


Funktion Bedeutung
get_class($object) Ergibt den Namen der Klasse des Objekts.
get_parent_class($object) Ergibt den Namen der übergeordneten Klasse des Objekts.
method_exists($object,method) Prüft, ob eine Methode existiert.
class_exists(classname) Ermittelt, ob die Klasse definiert wurde.
is_subclass_off($object,superclassname) Prüft, ob ein Objekt zu einer Unterklasse gehört.
is_a($object,classname) Prüft, ob ein Objekt zu einer Klasse oder deren Elternklasse gehört.
get_class_methods(classname) Gibt ein Array mit den Namen der Methoden einer Klasse zurück.
get_declared_classes() Gibt die Namen aller deklarierter Klassen in einem Array zurück. Zusätzlich zu den benutzerdefinierten Klassen werden drei interne Klassen ausgegeben: stdClass, OberloadedTestClass, Directory.
get_class_vars(classname) Diese Funktion gibt in einem Array die Namen der Eigenschaften der Klasse zurück.
get_objects_vars($object) Mit dieser Funktion ermitteln Sie die Eigenschaften eines Objekts, also die tatsächlich genutzten Variablen der zugrunde liegenden Klasse.



Einsatz von get_class(), get_parent_class() und get_class_methods()

Unter Verwendung des Klassendefinitionen des vorherigen Beispiels können z.B. mit Hilfe der Funktionen get_class(), get_parent_class() und get_class_methods() die folgenden Informationen über das Objekt $chipsatz1, bzw. der Klasse Chipsaetze ermittelt werden:



<?php
class Chip
{
    function 
Chip() {
        echo 
"Chip wurde produziert.<br>";
    }
    function 
produzieren($anzahl) {
        
$anzahl++;
        return(
$anzahl);
    }
}
class 
Chipsaetze extends Chip
{
    function 
Chipsaetze() {
        
Chip::Chip();
        echo 
"Chipsatz wurde produziert.<br>";
    }
    function 
produzieren($anzahl) {
        
$anzahl Chip::produzieren($anzahl);
        
$anzahl $anzahl*$anzahl;
        return(
$anzahl);
    }
}
$chipsatz1 = new Chipsaetze;
echo 
"<br>Klasse: ";
echo 
get_class($chipsatz1);
echo 
"<br>Elternklasse: ";
echo 
get_parent_class($chipsatz1);
echo 
"<br>------<br>";
$klasse "Chipsaetze";
echo 
"<br>Methoden der Klasse $klasse: ";
$array get_class_methods($klasse);
foreach (
$array as $element) {
    echo 
"<br>$element";
}
?>




Ausgabe



Chip wurde produziert.
Chipsatz wurde produziert.
Klasse: Chipsaetze
Elternklasse: Chip
------
Methoden der Klasse Chipsaetze: 
Chipsaetze
Produzieren
Chip



Die Ausgabe zeigt, dass den Objekten der Klasse Chipsaetze insgesamt drei Methoden zur Verfügung stehen.


Einsatz von get_declared_classes()

Der Konstruktor Chip() wurde von der Elternklasse Chip geerbt. Um die in einem Skript deklarierten Klassen zu ermitteln, kann die Funktion get_declared_classes() verwendet werden.


Beispiel



<?php
class Chip
{
    function 
Chip() {
        echo 
"Chip wurde produziert.<br>";
    }
    function 
produzieren($anzahl) {
        
$anzahl++;
        return(
$anzahl);
    }
}
class 
Chipsaetze extends Chip
{
    function 
Chipsaetze() {
        
Chip::Chip();
        echo 
"Chipsatz wurde produziert.<br>";
    }
    function 
produzieren($anzahl) {
        
$anzahl Chip::produzieren($anzahl);
        
$anzahl $anzahl*$anzahl;
        return(
$anzahl);
    }
}
echo 
"<br>Deklarierte Klassen:<br>";
$array get_declared_classes();
foreach (
$array as $element) {
    echo 
"<br>$element";
}
?>




Ausgabe



Deklarierte Klassen:
stdClass
OverloadedTestClass
Directory
com
Chip
Chipsaetze



Wie Sie sehen sind weit mehr Klassen definiert, sowohl die nutzerdefinierten als auch die vordefinierten Klassen werden ausgegeben.


Einsatz von get_class_vars() und get_object_vars()

Mit Hilfe der Funktionen get_class_vars() und get_object_vars() können die Klassenvariablen einer Klasse bzw. die Objektvariablen eines Objekts zurückgegeben werden. Das folgende Beispiel demonstriert die Verwendung dieser Funktionen.


Beispiel - get_class_vars()



<?php
class Fahrzeug
{
    var 
$hersteller "VW";
    var 
$typ "PKW";
    var 
$klasse "Mittel";
}
echo 
"Klassen-Variablen: ";
$array get_class_vars("Fahrzeug");
foreach (
$array as $element) {
    echo 
"$element, ";
}
?>




Ausgabe



Klassen-Variablen: VW, PKW, Mittel,




Beispiel - get_object_vars()



<?php
class Fahrzeug
{
    var 
$hersteller "VW";
    var 
$typ "PKW";
    var 
$klasse "Mittel";
}
// Objekt
$meinAuto = new Fahrzeug;
$meinAuto->hersteller "BMW";
$meinAuto->typ "Motorad";
$meinAuto->klasse "keine";
echo 
"Objekt-Variablen: ";
$array get_object_vars($meinAuto);
foreach (
$array as $element) {
    echo 
"$element, ";
}
?>




Ausgabe



Objekt-Variablen: BMW, Motorad, keine,




 


Verbesserungen des OOP-Konzepts in PHP4
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de