Gültigkeitsbereichsoperator (::)
 
  Der Gültigkeitsbereichsoperator (auch Paamayim Nekudotayim genannt) oder
  einfacher ausgedrückt, der Doppel-Doppelpunkt, ist ein Kürzel, das den
  Zugriff auf eine Konstante,
  eine statische Eigenschaft oder
  eine statische Methode einer
  Klasse oder einer ihrer Eltern erlaubt. Außerdem können statische
  Eigenschaften oder Methoden durch
  späte statische Bindung
  überschrieben werden.
 
 
  Wenn Sie diese Elemente außerhalb der Klassendefinition ansprechen, benutzen
  Sie den Namen der Klasse.
 
 
  Es ist möglich, eine Variable als Klassenreferenz zu nutzen. Der
  Variablenwert darf kein Schlüsselwort (wie self,
  parent oder static) sein.
 
 
  Paamayim Nekudotayim scheint auf den ersten Blick eine eigenartige Wahl
  für die Benennung eines Doppel-Doppelpunktes zu sein. Jedoch entschied sich
  das Zend Team ihn so zu nennen, während sie die Zend Engine 0.5 schrieben
  (welche PHP 3 antreibt). Tatsächlich bedeutet das Doppel-Doppelpunkt -
  in Hebräisch.
 
 
  Beispiel #1 :: außerhalb der Klassendefinition
  
<?php
class MyClass {
    const CONST_VALUE = 'Ein konstanter Wert';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE;
echo MyClass::CONST_VALUE;
?>
   
  
 
  Die drei speziellen Schlüsselwörter self,
  parent und static werden benutzt, um
  auf Member und Methoden von innerhalb der Klassendefinition zuzugreifen.
 
 
  Beispiel #2 :: innerhalb der Klassendefinition
  
<?php
class MyClass {
    const CONST_VALUE = 'Ein konstanter Wert';
}
class OtherClass extends MyClass
{
    public static $my_static = 'statische Variable';
    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}
$classname = 'OtherClass';
$classname::doubleColon();
OtherClass::doubleColon();
?>
   
  
 
  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 #3 Eine Vatermethode aufrufen
  
<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}
class OtherClass extends MyClass
{
    // Die Definition des Vaters überschreiben
    public function myFunc()
    {
        // Aber dennoch die Funktion des Vaters aufrufen
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}
$class = new OtherClass();
$class->myFunc();
?>
   
  
 
  Siehe auch ein Beispiel
  zur Bedeutung von $this, wenn nicht-statische Methoden
  statisch aufgerufen werden.