在函數中使用預設參數
建立PHP 函數時,您可以為參數指定預設值,以提供靈活性並減少對顯式賦值。但是,稍後在函數聲明中為參數設定不同的參數有時可能會造成混亂。
考慮以下函數:
<code class="php">function foo($blah, $x = "some value", $y = "some other value") { // code here! }</code>
使用$x 的預設參數並設定不同的值對於$y,只需為$x 傳遞null,如下所示:
<code class="php">foo("blah", null, "test");</code>
這會將預設值「某個值」指派給$x,同時覆寫$y 的預設值。
但是,嘗試透過變數名稱設定 $x(例如 foo("blah", $x, $y = "test"))將無法如預期般運作。這是因為預設參數只能應用於函數定義中的最後一個參數。
要解決此限制並允許更動態的參數處理,您可以修改函數聲明,如下所示:
<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>
透過這種方法,您可以為特定參數傳遞null 值以使用其預設值,同時覆寫其他參數,如下所示:
<code class="php">foo("blah", null, "non-default y value");</code>
在此範例中, $x 將接收其預設值,而$ y 將被指派指定的非預設值。
以上是如何覆蓋 PHP 函數中的預設參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!