重寫 PHP 中的預設函數參數
PHP 函數支援在呼叫函數時使用預設參數來設定後備值。但是,設定特定參數同時保持其前面參數的預設值可能具有挑戰性。
考慮以下函數:
<code class="php">function foo($blah, $x = "some value", $y = "some other value") { }</code>
$x 和 $y 的預設參數是「某些值」和「其他值」。但是,如果您想在使用 $x 預設值的同時覆寫 $y 的預設值,該怎麼辦?
嘗試使用null 覆寫預設值,例如:
<code class="php">foo("blah", null, "test"); // Does not work</code>
或
<code class="php">foo("blah", "", "test"); // Does not work</code>
不會產生所需的結果。
另一種方法,將預設變數指派給命名變數變數,例如:
<code class="php">foo("blah", $x, $y = "test");</code>
也無法覆寫預設值。
要克服此挑戰,請修改函數宣告如下:
<code class="php">function foo($blah, $x = null, $y = null) { if (null === $x) { $x = "some value"; } if (null === $y) { $y = "some other value"; } }</code>
這允許您進行如下呼叫:
<code class="php">foo('blah', null, 'non-default y value');</code>
並且仍然保持$x 的預設值。
注意: 僅預設參數作為函數的最後一個參數。在函數定義中宣告預設值時,不可能省略參數並覆寫後續參數。
以上是如何在維護其他參數的同時覆寫 PHP 中的預設函數參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!