定义函数参数 2 并将参数 1 保留为默认值


Define function argument 2 and leave argument 1 as default

如果你有以下函数

function func1($captainObvious="John",$name){
  return "Hallo my name is ".$captainObvious."<br>Welcome ".$name."!";
}

如何在不给出参数 1 的情况下用参数 2 来调用它?我想用类似的东西来称呼它

func1(default,"Benny");

但我似乎找不到这种可能性。

如果你不能改变func1,你将不得不使用func1("John", "Benny") 。如果您可以更改它,但由于遗留问题而更改参数顺序(首选解决方案!)是毫无疑问的,则可以使用 null 作为默认标志:

function func1($captainObvious="John", $name){
  if ($captainObvious === null) {
    $captaionObvious = "John";
  }
  return "Hallo my name is ".$captainObvious."<br>Welcome ".$name."!";
}
func1(null,"Benny");

创建函数时,应将所需的参数放在首位,然后将具有默认值的参数放在它们之后。否则,您最终会遇到这样的情况,您现在必须为第一个参数提供一个值。

您必须将所需的变量放在首位。

例如

Function func1($captainObvious="John",$name){
    return "Hallo my name is ".$captainObvious."<br>Welcome ".$name."!";
}
Function func2($name, $captainObvious="John"){
    return "Hallo my name is ".$captainObvious."<br>Welcome ".$name."!";
}

然后,如果您调用这些函数

echo(func1('', 'Benny'));
echo(func2('Benny', '');

会为 func1 付出

你好,我的名字是。

欢迎本尼!

而对于 func2

你好,我叫约翰。

欢迎本尼!