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
DDDOriginal
2025-01-01 01:03:10917Durchsuche

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...

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!

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