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

Späte Bindung in PHP

WBOY
Freigeben: 2016-07-29 09:10:45
Original
1231 Leute haben es durchsucht

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>
Nach dem Login kopieren

Ausgabe:

<code>A
</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

<code>B
</code>
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage