// my code
  

Klassen

Beitrag aktualisiert am 28.04.2010 um 23:02 h von: Markus

Klassen in PHP ersparen einem eine Menge Code wie dieses Beispiel zeigen soll.

In der Klasse "Personen" weisen wir einer oder mehreren Personen zwei Eigenschaften zu.

  • Das Geschlecht
  • Das Alter

Das ist nicht besonders viel aber genügt erstmal um eine Person zu beschreiben.

In der Zweiten Klasse "Individiuum" wollen wir die Person individualisieren.

Es kommen zwei weitere Eigenschaften hinzu:

  • Haarfarbe
  • Alter

Wenn man in diesem Fall nur mit Funktionen/Methoden arbeiten würde, müßte man die Funktion neu schreiben oder umschreiben, wir bedienen uns hier der "Klassenvererbung".

Unsere neue Klasse erbt die Eigenschaften der Klasse "Personen" durch den "extends" Befehl und die Referenz auf "Personen".

<?php //Klasse "Personen" mit zwei Eigenschaften
  
class Personen{
    var $set_geschlecht;
    var $set_alter;
   
    function set_geschlechter($geschlecht) {
        $this->set_geschlecht = $geschlecht;
    }
    function show_geschlecht() {
        return "$this->set_geschlecht";
    }
    function set_alter($alter) {
        $this->set_alter = $alter;
    }
    function show_alter() {
        return $this->set_alter;
    }
}

$Person = new Personen;
$Person->set_geschlechter("weiblich");
echo "<p>Die Grundlegende Eigenschaft einer Person:</p>";
echo "Geschlecht: ".$Person->show_geschlecht()." ";
$Person->set_alter("22");
echo " Alter: ".$Person->show_alter();

//die neue Klasse erbt Geschlecht und Alter von der Elternklasse "Personen"
class Individiuum extends Personen{
    var $haar;
    var $groesse;
    function set_haar($haar_farbe) {
        $this->haar = $haar_farbe;
    }
    function show_haar() {
        return $this->haar;
    }
    function set_groesse($groesse) {
        $this->groesse = $groesse;
    }
    function show_groesse() {
        return $this->groesse;
    }
}

$Mann = new Individiuum;
$Mann->set_haar("blond");
$Mann->set_geschlechter("männlich");
$Mann->set_alter("36");
$Mann->set_groesse("180");
echo "<p>Person ist ".$Mann->show_geschlecht()." und hat ein Alter von ".$Mann->show_alter()." Jahren, die Haarfarbe i­st ".$Mann->show_haar()." und die Groeße ist ".$Mann->show_groesse()."cm.";

?>

Ausgabe:

Die Grundlegende Eigenschaft einer Person: Geschlecht: weiblich - Alter: 22­ Person ist männlich und hat ein Alter von 36 Jahren, die Haarfarbe ist blond und die Groeße ist 180cm.

Ich habe hier bewußt Alter und Geschlecht geändert damit einem bewußt wird das wir nicht die tatsächlichen Werte der Eigenschaften vererben sondern nur die Eigenschaften als Fähigkeiten.