次の機能がある場合
function func1($captainObvious="John",$name){
return "Hallo my name is ".$captainObvious."<br>Welcome ".$name."!";
}
引数1を与えずに、引数2でどのように呼び出すのですか?私はそれを次のようなもので呼びたいです
func1(default,"Benny");
しかし、私はその可能性を見つけることができないようです。
次の機能がある場合
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のために
ハロー私の名前はジョンです。
ようこそベニー!