Wofür wird die "::" Notation in PHP verwendet?

10

Ich schaue durch einen PHP-Code und ich sehe diese "::" -Notation, dass ich keine Ahnung habe, was es bedeutet ... auch, was die & amp; im Vordergrund des Anrufs

%Vor%

Danke im Voraus

    
Trace 11.06.2011, 03:00
quelle

4 Antworten

22

:: , der Bereichsauflösungsoperator , wird zum Verweisen auf statische Elemente verwendet und Konstanten einer Klasse. Es wird auch verwendet, um den Konstruktor einer Superklasse zu referenzieren. Hier ist ein Code, der verschiedene Verwendungen des Scope-Auflösungsoperators veranschaulicht:

%Vor%

Ein kleines Quiz: Der Operator für die Bereichsauflösung wird auch "paamayim nekudotayim" genannt, was im Hebräischen "zwei Punkte zweimal" bedeutet.

& im Kontext Ihres Beispiels macht nichts Sinnvolles, wenn Sie PHP 5 oder höher verwenden und entfernt werden sollten. In PHP 4 war dies notwendig, um sicherzustellen, dass eine Kopie des zurückgegebenen Objekts nicht verwendet wurde. In PHP 5 werden keine Objektkopien erstellt, außer clone wird aufgerufen. Und so & wird nicht benötigt. Es gibt noch einen Fall, in dem & in PHP 5 noch nützlich ist: Wenn Sie über die Elemente eines Arrays iterieren und die Werte ändern, müssen Sie den Operator & verwenden, um die Elemente des Arrays zu beeinflussen.

    
Asaph 11.06.2011, 03:01
quelle
2

Sie können damit statische Methoden einer Klasse referenzieren, ohne sie instanziieren zu müssen.

Zum Beispiel:

%Vor%

Hier könnten Sie myClass::staticFunction() außerhalb der Klasse verwenden, aber Sie müssten ein neues myClass-Objekt erstellen, bevor Sie otherFunction() auf die gleiche Weise verwenden.

    
Eric Yang 11.06.2011 03:06
quelle
2

:: ist der Bereichsoperator in PHP, C ++, aber nicht in Java. In diesem Fall wird eine statische Methode einer Klasse aufgerufen. Eine statische Methode ist eine Methode, die von außerhalb der Klasse aufgerufen werden kann, auch wenn Sie keine Instanz haben.

& zeigt an, dass eine Kopie der zurückgegebenen Funktion nicht übernommen wird, sondern der Verweis auf das zurückgegebene Objekt verwendet wird. In diesem Fall scheinen sie Singleton-Objekte zurückzugeben, die in der Anwendung verwendet werden, z. mit der Datenbank zu verbinden (im zweiten Fall)

    
Cronco 11.06.2011 03:05
quelle
1

Dies ist der Bereichsoperator, der für die Referenzierung von Konstanten oder statischen Methoden unter Klassen verwendet wird. Also:

%Vor%

In Ihrem Fall ruft es eine Methode der Klasse auf, die nicht an eine bestimmte Instanz gebunden ist.

    
Ry︁ 11.06.2011 03:04
quelle

Tags und Links