Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendung des Doppelpunkts in PHP

Anwendung des Doppelpunkts in PHP

巴扎黑
巴扎黑Original
2016-11-24 11:02:041347Durchsuche

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 = &#39;Fruit Color&#39;;
}
$classname = &#39;Fruit&#39;;
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 = &#39;Fruit Color&#39;;
}
class Apple extends Fruit
{
  public static $color = &#39;Red&#39;;
  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&#39;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


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