Heim > Artikel > Backend-Entwicklung > PHP Static verzögerte statische Bindungsnutzungsanalyse
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!