Teilen von PHP-Beispielcode mithilfe des Bereichsauflösungsoperators

黄舟
Freigeben: 2023-03-07 07:56:01
Original
1737 Leute haben es durchsucht

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;
Nach dem Login kopieren

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!";
    }
}
Nach dem Login kopieren

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();
    }
}
Nach dem Login kopieren

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();

?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!