Der „::“-Operator wird häufig in PHP-Klassencodes verwendet. Dies ist ein den Bereich einschränkender Operator, der durch einen Doppelpunkt „::“ dargestellt wird. Er wird verwendet, um die Ebenen verschiedener Bereiche in der Klasse festzulegen. Die linke Seite ist der Bereich und die rechte Seite sind die Mitglieder des Zugriffsbereichs.
In PHP sind zwei Bereiche definiert: self und parent (statischer Bereich wird in PHP6 bereitgestellt).
self: stellt den Bereich der aktuellen Klasse dar. Im Gegensatz dazu stellt es keine bestimmte Instanz der Klasse dar. Self kann nicht in Code außerhalb der Klasse verwendet werden und kann sich nicht in der Vererbungshierarchie identifizieren. Standort. Das heißt, wenn self in einer erweiterten Klasse verwendet wird, ruft es nicht die Methode der übergeordneten Klasse auf, sondern die überladene Methode der erweiterten Klasse.
parent: Gibt den Bereich der übergeordneten Klasse der aktuellen Klasse an, der Rest entspricht dem Selbstattribut.
Beispiel für den PHP-Doppelpunkt-Operator :::
<?php class forasp{ static $url="http://blog.csdn.net/abandonship"; static $webname = "PHP学习之双冒号的用法"; public function writeurl(){ echo self::$url;//调用自己的内容 } public function writewebname(){ echo "测试子类调用父类内容"; } } class cn extends forasp{ function father(){ parent::wirtewebname(); } } $a = new forasp();//实例化父类 $a->writeurl();//调用自身内容 $b = new cn(); $b->writewebname();//调用父类内容 ?>
Sie können auch :: verwenden, wenn Sie statische Methoden aufrufen, um statische Methoden oder Attribute in einer Klasse aufzurufen Reduzieren Sie den Ressourcenverbrauch, da jede Klasseninstanz einen Teil der Ressourcen belegt.
Static:: Scope wurde in PHP6 vorgeschlagen, daher brauchen wir self:: und parent:: nicht mehr. Wenn Sie auf die letzte Klasse verweisen möchten, die die Funktion implementiert, verwenden Sie static::. Dieses Qualifikationsmerkmal berechnet die Mitglieder der letzten Klasse in der Vererbungsschicht unmittelbar vor der Ausführung des Codes.
Der „Doppelpunkt-Operator“, auch bekannt als „Scope Resolution Operator“, kann auf statische, konstante und überschriebene Eigenschaften und Methoden in Klassen zugreifen.
Bei Verwendung außerhalb der Klassendefinition verwenden Sie zum Aufrufen den Klassennamen. In PHP 5.3.0 können Sie Variablen anstelle von Klassennamen verwenden.
Programmliste: Verwenden Sie Variablen für den Zugriff außerhalb der Klassendefinition
<?php class Fruit { const CONST_VALUE = 'Fruit Color'; } $classname = 'Fruit'; echo $classname::CONST_VALUE; // As of PHP 5.3.0 echo Fruit::CONST_VALUE; ?>
Programmliste: Verwenden Sie Doppelpunkte (::) außerhalb der Klassendefinition
<?php class Fruit { const CONST_VALUE = 'Fruit Color'; } class Apple extends Fruit { public static $color = 'Red'; public static function doubleColon() { echo parent::CONST_VALUE . "\n"; echo self::$color . "\n"; } } Apple::doubleColon(); ?>
Programmausführungsergebnisse:
Fruchtfarbe Rot
Programmliste: Übergeordnete Methode aufrufen
PHP-Code
<?php class Fruit { protected function showColor() { echo "Fruit::showColor()\n"; } } class Apple extends Fruit { // Override parent's definition public function showColor() { // But still call the parent function parent::showColor(); echo "Apple::showColor()\n"; } } $apple = new Apple(); $apple->showColor(); ?>
Ergebnis der Programmausführung:
Fruit::showColor()
Apple::showColor()
Programm Liste: Bereichsqualifizierer verwenden
PHP-Code
<?php class Apple { public function showColor() { return $this->color; } } class Banana { public $color; public function __construct() { $this->color = "Banana is yellow"; } public function GetColor() { return Apple::showColor(); } } $banana = new Banana; echo $banana->GetColor(); ?>
Ergebnis der Programmausführung:
Banane ist gelb
Programmliste: Basisklassenmethode aufrufen
PHP-Code
<?php class Fruit { static function color() { return "color"; } static function showColor() { echo "show " . self::color(); } } class Apple extends Fruit { static function color() { return "red"; } } Apple::showColor(); // output is "show color"! ?>
Ergebnis der Programmausführung:
zeigen Farbe