Programmieren für Objekte verwendet einige seiner eigenen Operatoren, wie zum Beispiel ->, dieses Symbol wird verwendet, um darauf zuzugreifen eigene Mitglieder in einem Objekt. Der andere ist der Bereichsauflösungsoperator: zwei miteinander verbundene Doppelpunkte (::). Diese Notation wird verwendet, um auf Mitglieder innerhalb einer Klasse (nicht innerhalb eines Objekts) zuzugreifen. Die Verwendung ist wie folgt:
ClassName::methodName(); ClassName::propertyName;
Diese Struktur kann an zwei Stellen verwendet werden:
1 Bei der Verwendung einer Klasse haben die übergeordnete Klasse und die Unterklasse die gleiche Verwendung Dies dient dazu, Verwirrung bei der Verwendung von Eigenschaften und Methoden zu vermeiden .
2. Verwenden Sie außerhalb der Klasse diesen Operator, um auf Mitglieder der Klasse zuzugreifen, ohne ein Objekt zu erstellen.
So wie wir $this in einer Klasse verwenden können, um auf eine Instanz des aktuellen Objekts zu verweisen , wird das Schlüsselwort self als Verweis auf die aktuelle Klasse verwendet.
class SomeClass { function construct() { self::do(); } protected function do(){ echo "done!"; } }
In diesem Code löst self::do() die do()-Methode der aktuellen Klasse aus.
Um auf ein Mitglied der übergeordneten Klasse zu verweisen, können Sie das Schlüsselwort parent und den Bereichsauflösungsoperator als Referenz verwenden:
class SomeOtherClass extends SomeClass { function construct() { parent::do(); } }
In den meisten Fällen verwenden wir den Bereichsauflösungsoperator für den Zugriff Überschriebene Methode. Wir können es auch verwenden, um auf statische und konstante Mitglieder zuzugreifen.
Hinweis: Wie statische Eigenschaften können alle Instanzen der Klasse (oder ihrer Unterklassen) auf Klassenkonstanten zugreifen. Aber sein Wert kann nicht geändert werden. Klassenkonstanten werden mit dem const-Schlüsselwort erstellt, gefolgt vom Konstantennamen (ohne Dollarzeichen). Auf Konstanten kann nicht über Objekte wie $obj->PI oder $obj::PI zugegriffen werden, aber wir können ClassName::CONSTANT_NAME überall verwenden. Sie können self::CONSTANT_NAME auch in Methoden innerhalb einer Klasse verwenden.
Beispielprogramm:
<?php class Rectangle { protected static $_count = 0; protected $width; protected $height; function construct($width, $height) { $this->width = $width; $this->height = $height; self::$_count++; echo "已成功创建".self::$_count."个Rectangle对象<br>"; } function destruct() { echo "销毁一个Rectangle对象<br>"; } function getArea() { echo "Rectangle面积是:".($this->width * $this->height."<br>"); } function getConunt() { return self::$_count; } } class Square extends Rectangle { function construct($side) { $this->width = $side; $this->height = $side; parent::$_count++; echo "已成功创建".parent::$_count."个Rectangle(Square)对象<br>"; } } $rec = new Rectangle(10, 5); $rec->getArea(); $square = new Square(10); $square->getArea(); ?>
Laufergebnis:
Das obige ist der detaillierte Inhalt vonTeilen von PHP-Beispielcode mithilfe des Bereichsauflösungsoperators. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!