:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
Verweisoperator/Gültigkeitsbereichsoperator (::) |
Der Gültigkeitsbereichsoperator, auch Verweisoperator genannt, ist ein Kürzel, das Zugriff auf statische, konstante und überschriebene Mitglieder einer Klasse ermöglicht.
Hinweis: Wenn solche Elemente außerhalb der Klassendefinition angesprochen werden sollen, muss der Name der Klasse verwendet werden.
Beispiel – :: außerhalb der Klassendefinition
<?php
class Flugzeug
{
const MAX_FLUGHOEHE = 15000;
}
echo Flugzeug::MAX_FLUGHOEHE . " Fuss";
?>
Ausgabe
15000 Fuss
Schlüsselwörter self und parent
Die zwei speziellen Schlüsselwörter self und parent werden verwendet, um auf Mitglieder wie Eigenschaften und Methoden innerhalb einer Klassendefinition zuzugreifen. Die beiden Schlüsselwörter weisen folgende Besonderheiten auf:
- self – Kann in Klassen verwendet werden, um Bezug auf Methoden innerhalb derselben Klase zu nehmen.
- parent – Verweist auf die Klasse, von der mit extends geerbt wurde.
Beispiel – :: innerhalb der Klassendefinition
<?php
class Flugzeug
{
const MAX_FLUGHOEHE = 15000;
}
class A320 extends Flugzeug
{
public static $hoehen_toleranz = 3000;
public static function fliegen() {
echo "Flughöhe (max): " . parent::MAX_FLUGHOEHE . " Fuss\n";
echo "Flughöhen (Toleranz): " . self::$hoehen_toleranz . " Fuss\n";
}
}
A320::fliegen();
?>
Ausgabe
Flughöhe (max): 15000 Fuss
Flughöhen (Toleranz): 3000 Fuss
Wenn eine abgeleitete Klasse die Definition der Methode eines Vaters überschreibt, wird PHP die Methode des Vaters nicht aufrufen. Es obliegt der abgeleiteten Klasse, ob die Methode der Vaterklasse aufgerufen wird oder nicht. Dies gilt ebenfalls für Konstruktoren und Destruktoren, Überladung und magische Methodendefinitionen.
Beispiel – Methode einer übergeordneten Klasse aufrufen
<?php
class Lebewesen
{
protected function erzeugen() {
echo "Lebewesen::erzeugen()\n";
}
}
class Menschen extends Lebewesen
{
// Definition der übergeordneten Klasse überschreiben
public function erzeugen()
{
// Trotzdem die Funktion der übergeordneten Klasse aufrufen
parent::erzeugen();
echo "Menschen::erzeugen()\n";
}
}
$mensch = new Menschen();
$mensch->erzeugen();
?>
Ausgabe
Lebewesen::erzeugen()
Menschen::erzeugen()
|
|
|
|
|
|