Heim > Artikel > Backend-Entwicklung > Wie überschreibe ich Standardfunktionsargumente in PHP, während andere beibehalten werden?
Überschreiben von Standardfunktionsargumenten in PHP
PHP-Funktionen unterstützen die Verwendung von Standardargumenten, um Fallbackwerte beim Aufrufen der Funktion festzulegen. Es kann jedoch eine Herausforderung sein, ein bestimmtes Argument festzulegen und gleichzeitig den Standardwert für die vorhergehenden Argumente beizubehalten.
Betrachten Sie die folgende Funktion:
<code class="php">function foo($blah, $x = "some value", $y = "some other value") { }</code>
Die Standardargumente für $x und $y sind „some Wert“ bzw. „ein anderer Wert“. Aber was ist, wenn Sie den Standardwert für $y überschreiben möchten, während Sie den Standardwert für $x verwenden?
Versuche, den Standardwert mit Null zu überschreiben, wie zum Beispiel:
<code class="php">foo("blah", null, "test"); // Does not work</code>
oder
<code class="php">foo("blah", "", "test"); // Does not work</code>
wird nicht zum gewünschten Ergebnis führen.
Ein anderer Ansatz, bei dem die Standardvariable einer benannten Variable zugewiesen wird Variable wie:
<code class="php">foo("blah", $x, $y = "test");</code>
kann den Standardwert auch nicht überschreiben.
Um diese Herausforderung zu meistern, ändern Sie die Funktionsdeklaration wie folgt:
<code class="php">function foo($blah, $x = null, $y = null) { if (null === $x) { $x = "some value"; } if (null === $y) { $y = "some other value"; } }</code>
Dadurch können Sie Aufrufe wie die folgenden durchführen:
<code class="php">foo('blah', null, 'non-default y value');</code>
und trotzdem den Standardwert für $x beibehalten.
Hinweis: Nur Standardargumente fungieren als letzte Argumente für die Funktion. Das Weglassen eines Parameters und das Überschreiben eines folgenden Parameters ist nicht möglich, wenn Standardwerte innerhalb der Funktionsdefinition deklariert werden.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich Standardfunktionsargumente in PHP, während andere beibehalten werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!