覆盖默认函数参数
使用默认参数声明 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中文网其他相关文章!