覆寫預設函數參數
使用預設參數聲明PHP 函數時,了解如何在仍使用預設值的情況下覆寫這些值非常重要為他人辯解。考慮以下函數:
<code class="php">function foo($blah, $x = "some value", $y = "some other value") { // code here! }</code>
要使用$x 的預設參數,同時為$y 設定不同的值,以下錯誤嘗試將無法運作:
<code class="php">foo("blah", null, "test"); foo("blah", "", "test");</code>
因為它們不要將所需的預設值指派給$x。此外,嘗試透過變數名稱設定參數:
<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 here! }</code>
現在,可以透過以下變體呼叫函數,例如:
<code class="php">foo('blah', null, 'non-default y value');</code>
並將$x 設為預設值,同時覆寫$y。
它是需要注意的是,預設參數僅適用於函數定義中的最後一個參數。如果可選參數後面有多個預設值參數,則無法省略一個參數並指定後面的一個。
以上是如何覆蓋 PHP 中的預設函數參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!