function foo($x="", $y="", $z=""){
echo $x .'-'. $y .'-'. $z;
}
foo('hello', $z='world');
> hello-world-
我想打印'你好 - 世界'。我是否需要指定x和z之间的所有参数来实现它?
答案 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-
这是因为如果你不需要参数,..。可能这意味着你需要另一个函数。