Heim >Backend-Entwicklung >PHP-Tutorial >Warum verhindert PHP 8.0, dass erforderliche Parameter optionalen Parametern folgen?

Warum verhindert PHP 8.0, dass erforderliche Parameter optionalen Parametern folgen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 18:12:14239Durchsuche

Why Does PHP 8.0 Prevent Required Parameters from Following Optional Parameters?

"Erforderlicher Parameter muss vor optionalem Parameter stehen"

In PHP-Versionen vor 8.0 ermöglichten Funktionsdeklarationen, dass optionale Parameter von erforderlichen Parametern gefolgt werden konnten . Diese Vorgehensweise war in PHP 8.0 veraltet, was zu Fehlern wie „Erforderlicher Parameter $xxx folgt optionalem Parameter $yyy“ führte.

Erklärung:

Dieser Stil der Funktionsdeklaration war irrational, da dadurch die Angabe aller Parameter (außer dem letzten erforderlichen) bei Funktionsaufrufen erzwungen wurde. Darüber hinaus führte es zu Unklarheiten bei der Verwendung der ReflectionFunctionAbstract-Klasse für die Funktions- und Methodenanalyse.

Lösung:

Um den veralteten Fehler zu beheben, schreiben Sie die Funktion neu, um Standardwerte zu entfernen aus früheren Parametern, um sicherzustellen, dass erforderliche Parameter vor optionalen deklariert werden:

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}

Durch die Einhaltung dieser Regel funktioniert die Funktion Signaturen werden logischer und folgen der Erwartung, dass erforderliche Parameter vor optionalen Parametern stehen sollten.

Das obige ist der detaillierte Inhalt vonWarum verhindert PHP 8.0, dass erforderliche Parameter optionalen Parametern folgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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