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.
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.
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.
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.
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!