Heim  >  Artikel  >  Backend-Entwicklung  >  Warum sind abstrakte statische Klassenmethoden in PHP 5.2 nicht zulässig?

Warum sind abstrakte statische Klassenmethoden in PHP 5.2 nicht zulässig?

DDD
DDDOriginal
2024-11-16 07:54:03869Durchsuche

Why Are Abstract Static Class Methods Not Allowed in PHP 5.2 ?

Warum sind in PHP 5.2 abstrakte statische Klassenmethoden nicht zulässig?

Ursprünglich ohne strenge Warnungen codiert, löst ein Projekt nun nach der Aktivierung zahlreiche Warnungen aus. Darunter befindet sich eine Warnung vor einer abstrakten statischen Funktion in der abstrakten übergeordneten Klasse Program. Laut Dokumentation waren abstrakte statische Funktionen in PHP 5.0.x und 5.1.x unbeabsichtigt zulässig und sind nicht mehr zulässig.

Warum sollten abstrakte statische Funktionen nicht existieren?

PHP 5.2 fehlte späte Statik Bindungen, die in PHP 5.3 verfügbar wurden. Mit dieser Funktion können übergeordnete Klassenmethoden statische Methoden ihrer untergeordneten Klassen aufrufen. Ohne sie waren abstrakte statische Methoden in PHP 5.2 wirkungslos, da übergeordnete Klassen keine statischen Methoden untergeordneter Klassen aufrufen konnten.

Die Saga geht weiter

Mit der Einführung späterer statischer Bindungen gewannen abstrakte statische Methoden wieder an Bedeutung . Trotzdem bleibt die Warnung bestehen. Obwohl argumentiert werden kann, dass abstrakte statische Methoden dazu führen können, dass fehlerhafte öffentliche Methoden in abstrakten Klassen offengelegt werden, wird dieses Argument als schwach angesehen.

Der seltsame Fall des Fehlerberichts 53081

PHP-Fehlerbericht 53081 angefordert die Entfernung der Warnung. Ursprünglich als Fälschung abgetan, wurde der Bericht später aufgrund eines Missverständnisses von Rasmus Lerdorf, dem Erfinder von PHP, als Fälschung abgetan.

Eine Lösung in PHP 7

Die Warnung wird in PHP 7 entfernt Dank Nikita Popovs PHP RFC: E_STRICT-Hinweise neu klassifizieren. Dieser Schritt in Richtung Vernunft wird es Entwicklern ermöglichen, abstrakte statische Methoden zu verwenden, ohne auf die fehlerhafte Warnung zu stoßen, die in PHP 5.2 auftritt.

Das obige ist der detaillierte Inhalt vonWarum sind abstrakte statische Klassenmethoden in PHP 5.2 nicht zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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