Quakenet/#php Tutorial

Hinweis: Wenn sie diese Seite von einer externen URL aufgerufen haben achten sie darauf das alle Kapitel aufeinander aufbauen. Stellen sie daher sicher dass sie alle vorherigen Kapitel gelesen haben, da sie sonst relevante Informationen übersehen.

Klassen benutzen

  1. Was ist OOP?
  2. Objekte aus einer Klasse erstellen
  3. Arbeiten mit einem Objekt
  4. Konstruktoren
  5. Destruktoren

1. Was ist OOP?

OOP ist die Abkürzung von Objektorientiertes Programmieren und beschreibt ein Paradigma in dem Programmcode zusammengepackt wird und eine Einheit bilden. Diesen Programmcode nennt man dann eine Klasse, die einen Namen bekommt. Von dieser Klasse erstellt bzw. instanziiert man Objekte. Die einfachste Umschreibung eines Objektes: Ein Array mit Funktionen. Auch wenn diese Umschreibung nicht alles umschreibt was mit Klassen und den dazugehörigen Objekten möglich ist, ist diese Umschreibung für einen Anfänger der einfachste Einstieg in OOP. Objekte besitzen intern eine Anzahl von vorher definierten Variablen die zusammen den aktuellen Zustand des Objekts beschreiben (daher auch "Ein Array [...]"). Des Weiteren existieren Funktionen in diesem Objekt die mit diesen Werten arbeiten können (daher auch "[...] mit Funktionen"). Diese Funktionen werden in OOP dann Methoden genannt. Obwohl es im Bereich OOP deutlich mehr zu erklären gibt reicht dieses Wissen erstmal um mit Klassen in PHP zu arbeiten. Wenn es dann aber darum geht eigene Klassen zu schreiben, ja dann beginnt der Spaß mit Kapselung, Vererbung, Entwurfsmuster und und und ...

2. Objekte aus einer Klasse erstellen

Klassen werden für Anfänger auch als Schablone bezeichnet. In den Programmiersprachen ist es dann Möglich aus einer Klasse ein Objekt dieser Klasse zu erzeugen. In PHP wird dafür das Schlüsselwort new verwendet. Hinter dem Schlüsselwort wird die Klasse angegeben von der wir ein Objekt erzeugen wollen.

<?php
$obj 
= new DateTime();
?>

Dieser Programmcode erstellt ein neues DateTime-Objekt und speichert in der Variable $obj ein Verweis auf dieses Objekt. Die Variable selbst enthält also nicht das Objekt selbst sondern nur eine Referenz auf dieses Objekt. Mit var_dump können wir uns dieses Objekt mal angucken.

<?php
$obj 
= new DateTime();
var_dump($obj);
?>

Die Ausgabe sieht wie folgt aus.

object(DateTime)#1 (0) {
}

Falls das Objekt öffentliche Attribute hat (die wir oben mit Arrayelement verglichen haben) werden diese wie bei einem var_dump mit einem Array angezeigt. Die Klasse DateTime hat jedoch keine öffentliche Attribute (und das ist auch gut so, aber das ist ein anderes Thema...).

3. Arbeiten mit einem Objekt

Wenn wir nun ein Objekt instanziiert haben möchten wir nun auch damit arbeiten. Dafür wird der ->-Operator verwendet. Links steht dabei die Variable die auf das Objekt zeigt, rechts die Methode oder die Eigenschaft/das Attribut auf welches man zugreifen möchte. Als Beispiel rufen wir die format()-Methode auf (date_format).

<?php
$obj 
= new DateTime();
echo 
$obj->format('H:i:s');
?>

Es ist klar das hier auch ein einfacher date-Aufruf, oder besser sogar ein strftime-Aufruf reicht, aber wir wollen ja lernen wie man mit Objekten rumhantiert.

4. Konstruktoren

Beim Erstellen eines Objektes wird eine spezielle Methode, der Konstruktor, aufgerufen. Dieser dient dazu beim instanziieren des Objektes die Attribute zu initialisieren. Beim DateTime-Objekt wird z.B. die Zeitzone und der aktuelle Zeitpunkt im Objekt gespeichert. Konstruktoren sind fast normal Methoden und können entsprechend auch Parameter besitzen. In der Funktionsbeschreibung von date_create sind diese z.B. für die DateTime-Klasse beschrieben.

<?php
$obj 
= new DateTime("-1 day");
?>

5. Destruktoren

Destruktoren sind spezielle Methoden die aufgerufen werden wenn die letzte Referenz auf ein Objekt gelöscht wurde. Da es keine Möglichkeit mehr gibt das Objekt zu erreichen sorgt PHP dafür dass der Destruktor aufgerufen wird und löscht dann das Objekt selbst. Destruktoren dienen dazu das Objekt sauber zu löschen, so kann ein Objekt was mit der Datenbank arbeitet im Destruktor die Datenbankverbindung beenden bevor es dann gelöscht wird.

Fragen zum Kapitel

Keine Fragen zum Kapitel vorhanden

Zurück zu Weiter zu
Copyright © bei den OPs von #php.de/QuakeNet Valid XHTML 1.0 Strict Valid CSS!