Websiteentwicklung: PHP: OOP für Fortgeschrittene (PHP5)
Hinweis: Dieser Artikel wird von mir noch fortgesetzt ich bitte darum ihn noch nicht gleich als Müll vorzuschlagen.
Vorwort
BearbeitenDie Objektorientierte Programmierung in PHP 5 ähnelt stark der von Java. Man sieht viele bekannte Strukturen.
Grundsätzlicher Aufbau
BearbeitenEine 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
BearbeitenMit 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
BearbeitenMit 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
BearbeitenMit 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
BearbeitenVererbung 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
BearbeitenMit 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.