Gold Vision Communications / USA
 GOLDVISION.COM
Serving the Multimedia Community since 1989.
English Site | German Site 

 Web Hosting

 Virtual Dedicated Servers

 Chequeo de dominio

 Haga su pedido

 Estado del pedido

 Support

 Contáctenos

 Download

 Network

 Network Status

 Webdesign / Templates

 Efectuar pago

 Terms & Conditions

 Imprimir

 Notas Legales

 Declaración de Privacidad
  PHP / ::
::

::

Achtung

Die folgende Beschreibung ist nur für PHP 4 gültig.

Manchmal ist es hilfreich, auf Funktionen in Basisklassen bzw. auf Funktionen in Klassen zuzugreifen, die noch keine Instanzen haben. Dafür wird der :: Operator verwendet.

class A
{
    function example()
    {
        echo "I am the original function A::example().<br>\n";
    }
}

class B extends A
{
    function example()
    {
        echo "I am the redefined function B::example().<br>\n";
        A::example();
    }
}

// Es gibt kein Objekt der Klasse A.
// Dies wird folgendes ausgeben
//   I am the original function A::example().<br>
A::example();

// Erstellt ein Objekt der Klasse B.
$b = new B;

// Dies wird folgendes ausgeben
//   I am the redefined function B::example().<br>
//   I am the original function A::example().<br>
$b->example();

Das obige Beispiel ruft die Funktion example() der Klasse A auf. Nachdem noch kein Objekt der Klasse A existiert, können wir nicht $a->example() oder ähnliches schreiben. Stattdessen rufen wir example() als 'Klassenfunktion' auf, d.h. als Funktion der Klasse selbst, und nicht irgendein Objekt dieser Klasse.

Es gibt Klassenfunktionen, aber keine Klassenvariablen. Tatsächlich gibt es zur Zeit des Aufrufs kein Objekt. Deshalb darf eine Klassenfunktion keine Objektvariablen benutzen (aber sie kann lokale und globale Variablen verwenden), und sie darf $this ebenfalls nicht benutzen.

In dem obigen Beispiel definiert Klasse B die Funktion example() neu. Die ursprüngliche Definition in Klasse A ist überschattet und nicht länger verfügbar, außer Sie verweisen mittels des ::-Operators speziell auf example() in Klasse A. Schreiben Sie A::example(), um dies zu tun (Tatsächlich sollten Sie parent::example() schreiben, wie im nächsten Abschnitt beschrieben).

In diesem Kontext besteht ein Objekt, das Objektvariablen haben kann. Deshalb können Sie auch $this und Objektvariablen verwenden, wenn sie von innerhalb einer Objektfunktion verwendet werden.


© 1998-2007 Gold Vision Communications All Rights Reserved.