Heim > Backend-Entwicklung > PHP-Tutorial > Warum wirft PHP 8.0 „Erforderlicher Parameter $xxx folgt optionalem Parameter $yyy'?

Warum wirft PHP 8.0 „Erforderlicher Parameter $xxx folgt optionalem Parameter $yyy'?

Patricia Arquette
Freigeben: 2024-12-03 07:39:13
Original
511 Leute haben es durchsucht

Why Does PHP 8.0 Throw

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage