如何在PHP自定义函数中添加可选参数?

16
例如,这里有一个快速的虚构函数,用于对它们进行求和:
function dummy_func($optional)
{
    if (!isset($optional)
    {
        $optional = "World!";
    }
    $output = "Hello " . $optional;
    return $output;
}

但是,如果我运行这个代码,会因为缺少参数而得到一个 E_WARNING 错误。我该如何设置以避免报错?

2个回答

31

可选参数需要设置默认值。不要在参数上检查 isset,只需给它赋一个默认值,以防未给出:

function dummy_func($optional = "World!")
{
    $output = "Hello " . $optional;
    return $output;
}

请参考手册中关于函数参数的页面(特别是默认参数值部分)。


9
您可以通过将$optional参数的默认值设置为"World!"来实现这一点:
function dummy_func($optional="World!")
{
    $output = "Hello " . $optional;
    return $output;
}

现在,如果您调用函数时没有提供任何参数,$optional将采用默认值,但是如果您传递一个参数,$optional将采用传递的值。
例如:
echo dummy_func();      // makes use of default value...prints Hello World!
echo dummy_func('foo!'); // makes use of argument passed...prints Hello foo!

我也想知道为什么他的回答被踩了。我给他点了赞,因为它是可行的,而且实际上与被采纳的答案相同,只是我不能同时采纳两个答案。 - Rob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接