Heim > Backend-Entwicklung > PHP-Tutorial > PHP 8.0: Warum müssen erforderliche Parameter jetzt vor optionalen Parametern stehen?

PHP 8.0: Warum müssen erforderliche Parameter jetzt vor optionalen Parametern stehen?

DDD
Freigeben: 2025-01-01 01:03:10
Original
844 Leute haben es durchsucht

PHP 8.0: Why Do Required Parameters Now Need to Precede Optional Ones?

PHP 8.0: Erforderlicher Parameter folgt optionalem Parameter

Beim Upgrade auf PHP 8.0 kann bei Entwicklern der folgende Fehler auftreten:

Deprecated: Required parameter $xxx follows optional parameter $yyy in...
Nach dem Login kopieren

Dieser Fehler tritt auf, wenn die Deklaration einer Funktion einen optionalen Parameter gefolgt von einem erforderlichen Parameter enthält. Beispielsweise würde der folgende Code den Fehler auslösen:

function test_function(int $var1 = 2, int $var2) {
    return $var1 / $var2;
}
Nach dem Login kopieren

Funktionale Implikationen klären

In PHP-Versionen vor 8.0 waren solche Funktionsdeklarationen zulässig. Sie führten jedoch zu Inkonsistenzen und Verwirrung bei der Analyse von Funktionen und Methoden mithilfe der ReflectionFunctionAbstract-Klasse.

Die neue Anforderung

PHP 8.0 erzwingt einen logischeren Ansatz, indem es alles Erforderliche verlangt Parameter müssen vor allen optionalen Parametern deklariert werden.

Empfohlen Lösung

Um den Fehler zu beheben, entfernen Sie einfach Standardwerte aus optionalen Parametern. Da die Funktion ohne Angabe aller Parameter ohnehin nicht aufgerufen werden konnte, sollte die Funktionalität davon unberührt bleiben:

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP 8.0: Warum müssen erforderliche Parameter jetzt vor optionalen Parametern stehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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