Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Static verzögerte statische Bindungsnutzungsanalyse

PHP Static verzögerte statische Bindungsnutzungsanalyse

高洛峰
高洛峰Original
2016-12-26 16:32:011133Durchsuche

Das Beispiel in diesem Artikel beschreibt die Verwendung der verzögerten statischen Bindung von PHP Static. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

PHP5.3 hat eine verzögerte statische Bindung eingeführt. Welches Problem soll es lösen? Ein seit langem bestehendes Problem im Vererbungsmodell von PHP besteht darin, dass es schwierig ist, den Endzustand einer erweiterten Klasse in der übergeordneten Klasse zu referenzieren. Schauen wir uns ein Beispiel an.

class A 
{ 
  public static function echoClass(){ 
    echo __CLASS__; 
  }
  public static function test(){ 
    self::echoClass();    
  }
}
class B extends A 
{    
  public static function echoClass() 
  { 
     echo __CLASS__; 
  } 
} 
B::test(); //输出A

PHP5.3 wurde eine neue Funktion hinzugefügt: verzögerte statische Bindung, was bedeutet, dass Ausdrücke oder Variablen, die ursprünglich in der Definitionsphase festgelegt wurden, geändert werden, um in der Ausführungsphase bestimmt zu werden, z Wenn eine untergeordnete Klasse den statischen Ausdruck der übergeordneten Klasse erbt, kann ihr Wert nicht geändert werden. Manchmal möchten Sie diese Situation nicht sehen.

Das folgende Beispiel löst das oben angesprochene Problem:

class A 
{ 
  public static function echoClass(){ 
    echo __CLASS__; 
  } 
  public static function test() 
  { 
    static::echoClass();    
  } 
} 
class B extends A 
{    
  public static function echoClass(){ 
     echo __CLASS__; 
  } 
} 
B::test(); //输出B

static::echoClass(); in Zeile 8 definiert eine statische verzögerte Bindungsmethode, bis B die Methode test aufruft Ausgeführt wird nur dann ausgeführt, wenn es ausgeführt wird.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit PHP-Programmierung befassen.

Weitere Artikel zur Analyse der verzögerten statischen Bindungsnutzung von PHP Static finden Sie auf der chinesischen PHP-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