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