Heim >Backend-Entwicklung >PHP-Tutorial >Späte statische Bindung nach PHP OOP
In diesem Artikel wird hauptsächlich die poststatische Bindungsfunktion von PHP objektorientiert vorgestellt. In diesem Artikel wird die späte statische Bindungsfunktion von PHP vorgestellt, die hauptsächlich zur Lösung des Problems der Referenzierung statisch aufgerufener Klassen im Vererbungsbereich verwendet wird. Ich hoffe, es hilft allen.
In diesem Artikel wird die späte statische PHP-Bindungsfunktion vorgestellt. Sie wird hauptsächlich verwendet, um das Problem der Referenzierung statisch aufgerufener Klassen im Vererbungsbereich zu lösen.
Sehen Sie sich zunächst das folgende Beispiel an:
class Person { public static function status() { self::getStatus(); } protected static function getStatus() { echo "Person is alive"; } } class Deceased extends Person { protected static function getStatus() { echo "Person is deceased"; } } Deceased::status(); //Person is alive
Offensichtlich ist das Ergebnis nicht das, was wir erwartet haben. Dies liegt daran, dass self:: von der Klasse abhängt, in der es definiert ist, nicht von der Laufklasse Art. Um dieses Problem zu lösen, können Sie die Methode status() in der geerbten Klasse überschreiben. Eine bessere Lösung besteht darin, dass PHP 5.3 die Funktion der späten statischen Bindung hinzugefügt hat.
class Person { public static function status() { static::getStatus(); } protected static function getStatus() { echo "Person is alive"; } } class Deceased extends Person { protected static function getStatus() { echo "Person is deceased"; } } Deceased::status(); //Person is deceased
Es ist ersichtlich, dass static:: nicht mehr auf die aktuelle Klasse verweist. Tatsächlich wird es zur Laufzeit berechnet, wodurch alle Eigenschaften der endgültigen Klasse abgerufen werden müssen.
Daher wird empfohlen, self:: in Zukunft nicht mehr zu verwenden, sondern static::
Verwandte Empfehlungen:
Objektorientierter PHP-Transaktionsskriptmodus
Objektorientierte PHP-Endklasse und Endmethode
PHP-objektorientierte Erklärung_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonSpäte statische Bindung nach PHP OOP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!