IMPRESSUM dotted_line KONTAKT dotted_line suchen dotted_line Kontakt dotted_line sitemap dotted_line ducken
222 PHP-Resource Mitglieder online

aktuelle Sprache Deutsch Umschalten auf andere Sprache Englisch

- Werbung-
php-resource

PHP Handbuch

extends

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)

Dies wird auch eine "Eltern-Kind" Beziehung genannt. Sie erstellen eine Klasse ("Eltern"), und erstellen mittels extends eine neue Klasse, die auf der "Eltern"-Klasse basiert: die "Kind"-Klasse. Sie können auch diese neue Unterklasse verwenden und eine neue, auf dieser Klasse basierenden Klasse erstellen.

Anmerkung: Bevor Sie Klassen verwenden können, müssen Sie diese definieren. Wenn Sie wollen, dass Named_Cart die Klasse Cart erweitert, müssen Sie Cart erst definieren. Wenn Sie eine andere Klasse, z.B. Yellow_named_cart erstellen wollen, welche auf Named_Cart basiert, müssen Sie zuerst Named_Cart definieren. Kurz gesagt ist die Reihenfolge, in der die Klassen definiert werden, sehr wichtig.



Anmerkungen zum PHP Handbuch
Neue Anmerkung schreiben
 



 

Neuzugänge PHP MySQL Tutorials

plotting masters - a professional guide - Teil I

Grafische Interpolation und Bestapproximation von numerischen Wertepaaren. Mit anderen Worten: Wir wollen Punkte auf einer Zeichenebene über verschiedene Verfahren miteinander verbinden.

04.06.2010 EVAMasters | Kategorie: PHP
plotting masters - a professional guide - Teil II

Grafische Interpolation und Bestapproximation von numerischen Wertepaaren. Mit anderen Worten: Wir wollen Punkte auf einer Zeichenebene über verschiedene Verfahren miteinander verbinden.

02.06.2010 EVAMasters | Kategorie: PHP
Spielereien mit Zeit und Datum

Das Rechnen mit Datum und Zeit ist nur selten unproblematisch, PHP stellt uns dafür zahlreiche Funktionen zur Verfügung. Wir wollen uns im folgenden ein paar davon ansehen und an Beispielen erproben.

09.04.2010 Stephane | Kategorie: PHP
Eines Warenkorbsystem für Anfänger

Ein kurzes Tutorial für Anfänger um ein einfaches aber funktionelles Warenkorbsystem zu erstellen. Freue mich über Rückmeldungen und Kritik - denn nur so verbessert man sich :)

31.12.2009 web3hoster | Kategorie: PHP
SVN Server einrichten

Wie man unter Linux einen Subversion Server einrichtet.

13.05.2009 jens | Kategorie: LINUX
Programmierung - SQL

Dieser SQL-Kurs wendet sich vor allem an Programmierer, die mit Hilfe von SQL auf Datebaken zugreifen, und an alle, die Datenbanken neu entwerfen, erweitern oder abändern wollen

01.04.2009 webmaster205@ | Kategorie: MySQL