Heim > Artikel > Backend-Entwicklung > Detailliertes Beispiel für die Verwendung des Bereichsauflösungsoperators in PHP
Objektorientiert Die Programmierung verwendet einige ihrer eigenen Operatoren, wie zum Beispiel ->; dieses Symbol wird verwendet, um auf seine eigenen Mitglieder im Objekt zuzugreifen. 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 von Klassen haben die übergeordnete Klasse und die Unterklasse die gleiche Verwendung um 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 die 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 verwenden, um darauf zu verweisen:
class SomeOtherClass extends SomeClass { function construct() { parent::do(); } }
In den meisten Fällen verwenden wir die Bereichsauflösung Der Operator soll auf die überschriebene Methode zugreifen. Wir können damit auch auf statische und konstante Mitglieder zugreifen.
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(); ?>
Laufergebnisse:
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Verwendung des Bereichsauflösungsoperators in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!