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

时间:2013-01-26 23:33:27

标签: php

如果您有以下功能

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

如何在不给出参数1的情况下使用参数2调用它? 我想用类似

的方式来称呼它
func1(default,"Benny");

但我似乎无法找到那种可能性。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您无法更改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");

答案 2 :(得分:1)

您必须先放置所需的变量。

例如

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

  
    你好,我的名字是。

         

欢迎Benny!

  

和func2

  
    你好,我的名字是约翰。

         

欢迎Benny!