PHP-Fehler: „Erforderlicher Parameter $xxx folgt optionalem Parameter $yyy“
Beim Upgrade auf PHP 8.0 können Entwickler auf einen Veraltungsfehler stoßen Angabe, dass ein erforderlicher Parameter auf einen optionalen Parameter folgt. Dieser Fehler entsteht durch die falsche Verwendung von Standardwerten für erforderliche Funktionsparameter.
Problembeschreibung:
Zuvor konnten Funktionen in PHP-Versionen vor 8.0 mit a deklariert werden Mischung aus erforderlichen und optionalen Parametern durch Zuweisen von Standardwerten zu erforderlichen Parametern. Diese Vorgehensweise wurde jedoch aufgrund ihrer inhärenten Mängel abgelehnt.
Betrachten Sie beispielsweise den folgenden PHP-Code:
function test_function(int $var1 = 2, int $var2) { return $var1 / $var2; }
In diesem Code ist $var1 ein erforderlicher Parameter mit einem Standardwert Wert 2. $var2 ist ebenfalls ein erforderlicher Parameter ohne Standardwert. Dieser Code würde in früheren PHP-Versionen korrekt funktionieren, löst jedoch in PHP 8.0 den Veraltungsfehler aus.
Neue Anforderungen:
In PHP 8.0 und höher ist dies jetzt erforderlich Erforderliche Parameter müssen vor optionalen Parametern deklariert werden. Diese Änderung stellt sicher, dass beim Aufruf der Funktion alle erforderlichen Parameter bereitgestellt werden, wodurch potenzielle Verwirrungs- und Fehlerquellen beseitigt werden.
Lösung:
Um den Fehler zu beheben, entfernen Sie einfach die Standardwert aus dem zuvor erforderlichen Parameter. Der Code sollte wie folgt umgeschrieben werden:
function test_function(int $var1, int $var2) { return $var1 / $var2; }
Durch diese Änderung entspricht die Funktion den neuen PHP-Anforderungen und löst nicht mehr den Deprecation-Fehler aus.
Das obige ist der detaillierte Inhalt vonWarum wirft PHP 8.0 „Erforderlicher Parameter $xxx folgt optionalem Parameter $yyy'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!