PHP - Objektorientierte ProgrammierungDas Grundverständnis, und die Besonderheiten sind im ersten Teil klar geworden. Im zweiten Teil wollen wir uns der Praxis widmen, und die ersten eigenen Klassen schreiben.

Nachdem die Objektorientierte Programmierung in seinen Grundsätzen erklärt ist, können wir uns den ersten Klassen und Programmen widmen, die diese Grundsätze ein wenig verwirklichen.

Eine Klasse wird in PHP mit dem Wort class eingeleitet, danach folgt der Name der Klasse.

Ein Beispiel:

<?php
class hallo

{ // Klasse beginnt

var $name;

function say_hello()
{
echo "Hallo $this->name";
}

} // Klasse endet


$say = new hallo;

$say->name = "Thiemo";
$say->say_hello();

?>

Das Ergebnis dieses Beispiels ist die Ausgabe "Hallo Thiemo".

OK sagen Sie, das hätte ich auch mit einem viel einfacheren Skript machen können?
Das ist klar, es ist nur ein Beispiel, für die Arbeit einer Klasse.
Klassen bestehen aus vielen Methoden, Methoden sind wie im "normalen" PHP, Funktionen.
Ein Objekt einer Klasse kann viele Eigenschaften haben, wie die Augenfarbe eines Menschen, eine Eigenschaft von diesem ist. Das Beispiel hat die Eigenschaft $name, welche in einer gewöhnlichen Variablen gespeichert wird.
Hierbei ist zu beachten, das diese Eigenschaften oder Variablen mit einem "var" definiert werden müssen. Bei der normalen PHP-Programmierung ist fest definiert, welchen Wert eine Variable hat. Hier ist aber leicht zu erkennen, das die Eigenschaft jeden Wert annehmen kann, der ihr als Eigenschaft eines Objektes zugewiesen wird.

Die gesamte Klasse besteht aus einer Methode, "say_hello()".
Die Methode "say_hello()" hat die Aufgabe, den Wert der Eigenschaft $name wieder auszugeben. Das geschieht über den echo-Befehl. Da PHP nicht "weiß", welchen Wert die Eigenschaft hat (sie ist innerhalb der Klasse nicht definiert), muss darauf hingewiesen werden, das geschieht mit dem $this-> vor dem Namen der Eigenschaft.
Dieses $this-> spricht den Wert der Eigenschaft an, welcher ihr nach dem Ableiten des Objektes zugewiesen wurde.

Eine neues Objekt, mit dem Bauplan dieser Klasse wird über $say= new hallo; abgeleitet. Dies geschieht mit dem Befehl
$objekt = new klasse;
Das new steht für neu, und klasse eben für den Namen der Klasse.

Zurück zu unserem Beispiel. Das Objekt wird jetzt mit $objekt bzw. $say angesprochen. Es kann über diesen Namen mit der Klasse "kommunizieren" und dadurch sich selbst neue Eigenschaften zuweisen.
Eben dieses zuweisen einer neuen Eigenschaft geschieht in der nächsten Zeile.

$say->name = "Thiemo";

Es wird die Eigenschaft "name" des Objektes $say angesprochen. Dieser Eigenschaft wird hier der Wert "Thiemo" zugewiesen. Das Objekt hat jetzt eine definierte Eigenschaft "name", welche durch die Funktion "say_hello()" ausgegeben wird.
Diese Funktion muss man aber wiederum direkt über das Objekt $say aufrufen, und ihr sozusagen "erlauben" die Methoden auszuführen.

Im dritten Teil wird ein komplexeres Beispiel, nämlich eine Datenbankklasse programmiert.

(tf)

Bookmark setzen... These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Bloglines
  • MisterWong
  • MySpace
  • Reddit
  • SEOigg
  • Technorati
  • TwitThis
  • Y!GG
  • Google Bookmarks

Weiterführende Links: