Standard-Funktionsargumente überschreiben
Beim Deklarieren von PHP-Funktionen mit Standardargumenten ist es wichtig zu verstehen, wie diese Werte überschrieben werden, während weiterhin die Standardwerte verwendet werden Argument für andere. Betrachten Sie die folgende Funktion:
<code class="php">function foo($blah, $x = "some value", $y = "some other value") { // code here! }</code>
Um das Standardargument für $x zu verwenden und gleichzeitig einen anderen Wert für $y festzulegen, funktionieren die folgenden falschen Versuche nicht:
<code class="php">foo("blah", null, "test"); foo("blah", "", "test");</code>
Wie sie Weisen Sie $x nicht den gewünschten Standardwert zu. Darüber hinaus führt der Versuch, das Argument über den Variablennamen festzulegen:
<code class="php">foo("blah", $x, $y = "test");</code>
nicht zum erwarteten Ergebnis.
Um das gewünschte Verhalten zu erzielen, sollten Sie die Funktionsdeklaration wie folgt ändern:
<code class="php">function foo($blah, $x = null, $y = null) { if (null === $x) { $x = "some value"; } if (null === $y) { $y = "some other value"; } // code here! }</code>
Jetzt ist es möglich, die Funktion mit Variationen wie den folgenden aufzurufen:
<code class="php">foo('blah', null, 'non-default y value');</code>
und $x auf den Standardwert setzen zu lassen, während $y überschrieben wird.
Das ist es Es ist wichtig zu beachten, dass Standardparameter nur für die letzten Argumente in der Funktionsdefinition gelten. Wenn dem optionalen Parameter mit dem Standardwert mehrere Parameter folgen, ist es nicht möglich, einen wegzulassen und den folgenden anzugeben.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich Standardfunktionsargumente in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!