Heim  >  Artikel  >  Backend-Entwicklung  >  Späte Bindung in PHP

Späte Bindung in PHP

WBOY
WBOYOriginal
2016-07-29 09:10:451205Durchsuche

Sehen wir uns zunächst ein Beispiel an:

<code><?php
    class A {
        public static function who() {
            echo __CLASS__;
        }
        public static function test() {
            self::who();
        }
    }
    
    class B extends A {
        public static function who() {
            echo __CLASS__;
        }
    }
    
    B::test();
?></code>

Ausgabe:

<code>A
</code>

Wenn späte Bindung verwendet wird:

<code><?php
    class A {
        public static function who() {
            echo __CLASS__;
        }
        public static function test() {
            static::who(); // 后期静态绑定从这里开始
        }
    }
    
    class B extends A {
        public static function who() {
            echo __CLASS__;
        }
    }
    
    B::test();
?></code>

Ausgabe:

<code>B
</code>

Die Verwendung von self:: oder CLASS zur statischen Referenzierung der aktuellen Klasse hängt von der Klasse ab, in der die aktuelle Methode definiert ist, nicht von der Klasse des Aufrufers.

„Late binding“ bedeutet, dass static:: nicht mehr in die Klasse aufgelöst wird, in der die aktuelle Methode definiert ist, sondern zur tatsächlichen Laufzeit berechnet wird. Es kann auch als „statische Bindung“ bezeichnet werden, da es für Aufrufe von statischen Methoden verwendet werden kann (aber nicht darauf beschränkt ist).

Das Obige hat die späte Bindung in PHP eingeführt, einschließlich statischer Methoden. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

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
Vorheriger Artikel:nginx rewriteNächster Artikel:PHP学习-1