Websiteentwicklung: PHP: OOP für Fortgeschrittene (PHP5)

Aus Wikibooks

Hinweis: Dieser Artikel wird von mir noch fortgesetzt ich bitte darum ihn noch nicht gleich als Müll vorzuschlagen.

Vorwort[Bearbeiten]

Die Objektorientierte Programmierung in PHP 5 ähnelt stark der von Java. Man sieht viele bekannte Strukturen.

Grundsätzlicher Aufbau[Bearbeiten]

Eine Klasse in PHP 5 beginnt wie bereits in PHP 4 mit dem Schlüsselwort class. Darauf folgt der Klassenrumpf, in dem die Eigenschaften (Variablen) und Methoden (Funktionen) definiert werden.

Ein Beispiel:

class MeineNeueKlasse
{
   // viele Eigenschaften und Methoden
}

Bei der Definition der Eigenschaften wurden bereits die ersten Neuerungen vorgenommen. Es wurden die Schlüsselwörter private, protected und public eingeführt. Wer bereits mit einer Hochsprache wie Java gearbeitet hat wird sich hier sehr freuen und diese Erweiterung zu schätzen wissen.

private[Bearbeiten]

Mit private erreicht man, dass eine Eigenschaft nur für die entsprechende Klasse zur Verfügung steht. Man könnte auch sagen, die Eigenschaft wird zum privaten Besitz dieser Klasse. Das bedeutet, dass die Eigenschaft nur innerhalb der Klasse bekannt ist und auch nur dort verwendet werden kann. Dadurch kann verhindert werden, dass das Script diese Variable von außen manipuliert und ihr evt. Werte zuweist, die sie nicht erhalten darf/sollte.

protected[Bearbeiten]

Mit protected sagt man ebenfalls, dass eine Variable privat ist. Jedoch gibt es den Unterschied, dass später auch die erbende Klasse Zugriff auf diese Variable erhält.

public[Bearbeiten]

Mit public legt man fest, dass man auf die Eigenschaft von überall aus zugreifen kann. Man könnte auch sagen, dass die Eigenschaft öffentlich ist, also überall 'erreichbar'.

Nachdem man die Eigenschaften der Klasse definiert hat, werden die Methoden definiert. Auch bei den Methoden gibt es die neuen Modifizierer private, protected und public. Dort haben sie den selben Effekt wie bei den Eigenschaften.

Ein Beispiel:

class MeineNeueKlasse
{
   private $pri_var; // eine private Eigenschaft
   protected $pro_var; // eine geschützte Eigenschaft
   public $pub_var; // eine öffentliche Eigenschaft

   private function pri_func($args) // eine private Funktion
   {}
   protected function pro_func($args) // eine geschützte Funktion
   {}
   public function pub_func($args) // eine öffentliche Funktion
   {}
}

Natürlich ist es egal, in welcher Reihenfolge man die Eigenschaften und Methoden einfügt. Jedoch ist es üblich, die Eigenschaften vor den Methoden zu deklarieren.

Vererbung[Bearbeiten]

Vererbung ist eine Technik der OOP, mit deren Hilfe man die Funktionalität von anderen Klassen übernehmen kann. Sie dient als Möglichkeit, Klassen zu erweitern.

extends[Bearbeiten]

Mit dem Schlüsselwort extends wird die Mutterklasse festgelegt. Mit Mutterklasse ist diejenige Klasse gemeint deren Eigenschaften und Methoden geerbt werden.

Ein Beispiel:

class MutterKlasse
{
   public $alte_eigenschaft;
}

class MeineNeueKlasse extends MutterKlasse
{
   public $neue_eigenschaft;
}

$objekt_alt = new MutterKlasse(); // objekt instanzieren
$objekt_alt->alte_eigenschaft = 'alt'; // richtig
$objekt_alt->neue_eigenschaft = 'neu'; // fehler

$objekt = new MeineNeueKlasse(); // objekt instanzieren
$objekt->alte_eigenschaft = 'alt'; // richtig
$objekt->neue_eigenschaft = 'neu'; // richtig

Vererbung hat den Sinn Funktionalität weiterzugeben und somit Arbeit zu erleichtern.