Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse und Erklärung der Verwendung des PHP-Range-Parsing-Operators (::)

Analyse und Erklärung der Verwendung des PHP-Range-Parsing-Operators (::)

黄舟
黄舟Original
2017-07-02 11:39:531038Durchsuche

Ich habe heute mehrere Symbole im Zusammenhang mit PHP gesehen. Eine davon ist @, das vor einer Variablen eingefügt wird, um zu verhindern, dass der PHP-Interpreter Fehler meldet, was bedeutet, dass selbst wenn ein Fehler auftritt, dieser nicht angezeigt wird.

Ich habe heute mehrere Symbole im Zusammenhang mit PHP gesehen. Eine davon ist @, das vor einer Variablen eingefügt wird, um zu verhindern, dass der PHP-Interpreter Fehler meldet, was bedeutet, dass selbst wenn ein Fehler auftritt, dieser nicht angezeigt wird.
Es gibt auch ein wichtigeres Symbol: PHPs Bereichsauflösung Operator (::)
Greifen Sie auf die -Funktion oder die Basis in einer Klasse zu, ohne Instanzfunktionen und Variablen in Klassen zu deklarieren sind sehr nützlich. In diesem Fall wird der ::Operator verwendet.

<?php 
class A { 
function example() { 
echo "I am the original function A::example().<br />\n"; 
} 
} 
class B 
extends
 A { 
function example() { 
echo "I am the redefined function B::example().<br />\n"; 
A::example(); 
} 
} 
// A 类没有
对象
,这将输出 
// I am the original function A::example().<br /> 
A::example(); 
// 建立一个 B 类的对象 
$b = new B; 
// 这将输出 
// I am the redefined function B::example().<br /> 
// I am the original function A::example().<br /> 
$b->example(); 
?>


Das obige Beispiel ruft die Funktion example() der Klasse A auf, aber es gibt hier kein Objekt der Klasse A, daher können Sie nicht $a->example() oder ähnliches verwenden. Die Methode ruft example() auf. Stattdessen rufen wir example() als Klassenfunktion auf, also als Funktion der Klasse selbst, und nicht als irgendein Objekt dieser Klasse.
Hier gibt es Klassenfunktionen, aber keine Klassenvariablen. Tatsächlich gibt es überhaupt kein Objekt, wenn die Funktion aufgerufen wird. Daher verwenden die Funktionen einer Klasse möglicherweise keine Objekte (aber möglicherweise lokale oder globale Variablen) und dürfen die Variable $this überhaupt nicht verwenden.
Im obigen Beispiel definiert Klasse B die Funktion example() neu. Die ursprünglich definierte Funktion example() in Klasse A wird maskiert und hat keine Wirkung mehr, es sei denn, der Operator :: wird verwendet, um auf die Funktion example() in Klasse A zuzugreifen. Zum Beispiel: A::example() (eigentlich sollte es als parent::example() geschrieben werden, was im nächsten Kapitel vorgestellt wird).
Das aktuelle Objekt kann übrigens über Objektvariablen verfügen. Sie können also $this und Objektvariablen innerhalb von Objektfunktionen verwenden.

Das obige ist der detaillierte Inhalt vonAnalyse und Erklärung der Verwendung des PHP-Range-Parsing-Operators (::). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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