Vordefinierte Konstanten
Klassen- und Objekt-Funktionen
Klassen/Objekte
PHP Manual

# Beispiele

In diesem Beispiel definieren wir zuerst eine Basisklasse und eine Erweiterung dieser Klasse. Die Basisklasse beschreibt ein beliebiges GemÃ¼se, ob es eÃbar ist oder nicht, sowie seine Farbe. Die Subklasse Spinat fÃ¼gt eine Methode hinzu, um sie zu kochen und eine weitere, um herauszufinden, ob sie gekocht ist.

Beispiel #1 classes.inc

`<?php
// Basisklasse mit Eigenschaften und Methoden
class Gemuese {
var $essbar;
var $farbe;
function Gemuese( $essbar, $farbe="grÃ¼n" )
{
$this->essbar = $essbar;
$this->farbe = $farbe;
}
function ist_essbar()
{
return $this->essbar;
}
function welche_farbe()
{
return $this->farbe;
}
} // Ende der Klasse Gemuese
// erweitert die Basisklasse
class Spinat extends Gemuese {
var $gekocht = false;
function Spinat()
{
$this->Gemuese( true, "grÃ¼n" );
}
function koche_es()
{
$this->gekocht = true;
}
function ist_gekocht()
{
return $this->gekocht;
}
} // Ende der Klasse Spinat
?>`

Jetzt instantiieren wir zwei Objekte von diesen Klassen und geben Informationen Ã¼ber sie aus, einschlieÃlich ihrer Abstammung. Wir definieren auch einige Hilfsfunktionen, hauptsÃ¤chlich um eine hÃ¼bsche Ausgabe der Variablen zu erhalten.

Beispiel #2 test_script.php

`<pre>
<?php
include "classes.inc";
// utility functions
function zeige_vars($obj)
{
$arr = get_object_vars($obj);
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
function zeige_methoden($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
echo "\tfunction $method()\n";
}
}
function klassen_abstammung($obj, $class)
{
global $$obj;
if (is_subclass_of($$obj, $class)) {
echo "Objekt $obj gehÃ¶rt zur Klasse ".get_class($$obj);
echo " einer Subklasse von $class\n";
} else {
echo "Object $obj gehÃ¶rt nicht zu einer Subklasse von $class\n";
}
}
// Instantiiere zwei Objekte
$veggie = new Gemuese(true,"blau");
$leafy = new Spinat();
// Informationen Ã¼ber die Objekte ausgeben
echo "veggie: KLASSE ".get_class($veggie)."\n";
echo "leafy: KLASSE ".get_class($leafy);
echo ", ELTERN ".get_parent_class($leafy)."\n";
// Zeige Eigenschaften von veggie
echo "\nveggie: Eigenschaften\n";
zeige_vars($veggie);
// und Methoden von leafy
echo "\nleafy: Methoden\n";
zeige_methoden($leafy);
echo "\nAbstammung:\n";
klassen_abstammung("leafy", "Spinat");
klassen_abstammung("leafy", "Gemuese");
?>
</pre>`

Wichtig ist in diesem Beispiel, dass das Objekt $leafy eine Instanz der Klasse Spinat ist, die eine Subklasse von Gemuese ist. Darum gibt der letzte Teil des obigen Skripts folgendes aus:

           [...]
    Abstammung:
    Objekt leafy gehÃ¶rt nicht zu einer Subklasse von Spinat
    Objekt leafy gehÃ¶rt zur Klasse spinat einer Subklasse von Gemuese

Vordefinierte Konstanten
Klassen- und Objekt-Funktionen
Klassen/Objekte
PHP Manual