Heim  >  Artikel  >  Backend-Entwicklung  >  Wie überschreibe ich Standardfunktionsargumente in PHP, während andere beibehalten werden?

Wie überschreibe ich Standardfunktionsargumente in PHP, während andere beibehalten werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 21:18:03672Durchsuche

How to Override Default Function Arguments in PHP While Maintaining Others?

Ü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?

Überschreiben mit Nullwerten

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.

Einstellung nach Variablennamen

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.

Problemumgehung für das Ü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!

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