Scope Resolution Operator

Aus php bar

(Weitergeleitet von Gültigkeitsbereichsoperator)
Wechseln zu: Navigation, Suche

Mit Hilfe des Scope Resolution Operators (::) kann man auf statische Eigenschaften und Methoden, auf Konstanten sowie auf überschriebene Methoden einer Klasse zugreifen.

Der Scope Resolution Operator wird auch als Paamayim Nekudotayim bezeichnet, was soviel wie doppelter Doppelpunkt auf hebräisch heisst.

Verwendung

Es gibt drei Möglichkeiten den Scope Resolution Operator zu verwenden:

  1. außerhalb der Klassendefinition unter Verwendung des Klassennamens: Klasse::methode()
  2. innerhalb der Klassendefinition unter der Verwendung des Schlüsselworts self für Eigenschaften und Methoden der momentanen Klasse: self::methode()
  3. innerhalb der Klassendefinition unter der Verwendung des Schlüsselworts parent für überschriebene Methoden der übergeordneten Klasse parent::methode()

Beispiel

 class Mother
 {
     /*
      * definiere Konstante
      */
     const MOTHERNAME = 'Mum';
     
     /*
      * definiere Funktion
10      */
11     public static function sayMe()
12     {
13         /*
14          * gebe Konstante mit Hilfe von self und des Scope Resolution Operators
15          * aus
16          */
17         echo self::MOTHERNAME;
18     }
19 }
20 
21 /*
22  * erweitere Mother Klasse
23  */
24 class Child extends Mother
25 {
26     /*
27      * definiere statische Variable
28      */
29     static $my_name = 'Child';
30 	
31     /*
32      * definiere Funktion
33      */
34     public static function sayMe()
35     {
36         /*
37          * gebe statische Variable mit Hilfe von self und des Scope Resolution
38          * Operators aus
39          */
40         echo 'I am the ' . self::$my_name . ' and this is my '; 
41 
42         /* rufe überschriebene Funktion der übergeordneten Klasse mit Hilfe von 
43          * parent und des Scope Resolution Operators auf
44          */
45         parent::sayMe();
46     }
47 }
48 
49 /*
50  * rufe statische Funktion außerhalb der Klassendefinition mit Hilfe des
51  * Klassennamens und des Scope Resolution Operators auf
52  */
53 Child::sayMe();


Links


Persönliche Werkzeuge