extends

Oft braucht man Klassen mit in einer anderen Klasse ähnlichen Variablen und Funktionen. So ist es eine gute Vorgehensweise, eine in allen Ihren Projekten verwendbare Oberklasse zu definieren, und diese dann den Bedürfnissen Ihrer einzelnen Projekte anzupassen. Um dies zu erleichtern, können Klassen andere Klassen erweitern. Die erweiterte bzw. abgeleitete Klasse verfügt über alle Variablen und Funktionen der Basisklasse (dies wird 'Vererbung' genannt, obwohl niemand gestorben ist), und was Sie in der erweiterten Definition hinzufügen. Es ist nicht möglich, etwas von einer Klasse wegzunehmen, d.h. Sie können keine existierenden Variablen oder Funktionen 'wegdefinieren'. Eine Unterklasse ist immer von einer einzigen Oberklasse abhängig, d.h. Mehrfachvererbung wird nicht unterstützt. Klassen werden mittels dem Schlüsselwort 'extends' erweitert.

class Named_Cart extends Cart
{
    var $owner;
  
    function set_owner ($name)
    {
        $this->owner = $name;
    }
}

Hier wird die Klasse Named_Cart definiert, die über alle Variablen und Funktionen von Cart, plus der Variable $owner und der Funktion set_owner() verfügt. Sie können einen bestimmten Einkaufswagen (Named_Cart) auf dem üblichen Weg erstellen, und nun auch den Besitzer (owner) bestimmen und erfragen. Sie können noch immer die normalen Cart Funktionen an Named_Cart anwenden:

$ncart = new Named_Cart;    // Erstellt einen bestimmten Einkaufwagen
$ncart->set_owner("kris");  // den Besitzer festlegen
print $ncart->owner;        // den Besitzer ausgeben
$ncart->add_item("10", 1);  // (vererbte Funktionalität von Cart)