Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erklärung der verzögerten statischen Bindung von PHP

Detaillierte Erklärung der verzögerten statischen Bindung von PHP

小云云
Freigeben: 2023-03-22 10:02:01
Original
1362 Leute haben es durchsucht

In der alten Version von PHP wird return new self() verwendet, um eine Instanz dieser Klasse zurückzugeben. Diese Methode hat jedoch einen großen Nachteil: self bezieht sich auf den Parsing-Kontext und nicht auf den aufrufenden Kontext. Dieser Artikel enthält hauptsächlich eine detaillierte Erklärung der verzögerten statischen PHP-Bindung. Ich hoffe, er kann Ihnen helfen.

abstract class father { 

    public static function create() { 

        return new self(); 

    } 
} 
class son1 extends father { 
} 
son1::create();
Nach dem Login kopieren

Das heißt, die Unterklasse, die im obigen Code die Methode create() aufruft, gibt tatsächlich eine Instanz der übergeordneten Klasse zurück, da self auf den Ort verweist, an dem sie sich befindet definiert und nicht an der Stelle, an der sie aufgerufen wird. Und die Vaterklasse ist eine abstrakte Klasse. Dieser Code meldet einen schwerwiegenden Fehler.

Verzögerte statische Bindung wurde nach PHP5.3 unter Verwendung des Schlüsselworts static eingeführt. <code> <br/>

abstract class father { 

    public static function create() { 

        return new static(); 

    } 
} 
class son1 extends father { 
} 
son1::create();
Nach dem Login kopieren

Das Ändern von self in static kann normal ausgeführt werden, da static auf die aufgerufene Klasse und nicht auf die definierte Klasse verweist.

Wir können static auch als Bezeichner einer statischen Methode verwenden, selbst wenn sie aus einem nicht statischen Kontext aufgerufen wird. Ich werde später darüber schreiben.

Verwandte Empfehlungen:

PHP-Implementierung der späten statischen Bindung

Detaillierte Erläuterung der Beispiele für die späte statische PHP-Bindung

Was ist PHP verzögerte statische Bindung? Detaillierte Erläuterung des Beispielcodes für verzögerte statische Bindung

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der verzögerten statischen Bindung von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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