如何将非连续参数传递给函数?

时间:2017-02-10 22:10:41

标签: php parameters arguments parameter-passing

function foo($x="", $y="", $z=""){
    echo $x .'-'. $y .'-'. $z;
}
foo('hello', $z='world');
> hello-world-

我想打印'你好 - 世界'。我是否需要指定x和z之间的所有参数来实现它?

2 个答案:

答案 0 :(得分:0)

是的,你必须在你的函数中指定所有参数(参数)(除了最后一个!),如果它是像你的例子那样写的。

一种替代方法是将数组作为参数传递,但如果从URL调用方法/函数则不行。

您在进行调用时无法指定要通过的参数:

foo('hello', $z='world');

您只传递示例中的第二个参数。

您必须对该函数进行以下任一调用:

foo('hello', 'world');
foo('hello', '', 'world');

答案 1 :(得分:0)

我还建议你另一个别名:

function foo($x="", $y="", $z=""){
    return $x .'-'. $y .'-'. $z;
}

function fooXZ($x="", $z=""){
    return foo($x, "", $z);
}

echo fooXZ('hello', 'world');

> hello-world-

这是因为如果你不需要参数,..。可能这意味着你需要另一个函数。