私は機能オプションの関数引数をいくつか指定する方法はありますか?
public function test($arg1, $arg2 = "a", $arg3 = "b")
は、デフォルト値で$arg2
を残すのみ$arg1
と$arg3
を指定して、それを呼び出すための方法はありますか?
私は機能オプションの関数引数をいくつか指定する方法はありますか?
public function test($arg1, $arg2 = "a", $arg3 = "b")
は、デフォルト値で$arg2
を残すのみ$arg1
と$arg3
を指定して、それを呼び出すための方法はありますか?
オプション引数の主なアイデアは、_do_それらを使用したい状況があることです。_never_が2番目の引数を送信すると、解決策が作成されます。センス。 –
function test($arg1, $arg2 = "a", $arg3 = "b") {
if (is_null($arg2)) $arg2 = "a";
return $arg1.' '.$arg2.' '.$arg3;
}
echo test(1, null, 3);
出力使用に言及していると思う:
1 a 3
はJavaScriptでこれはかなり一般的であることにも指摘する:
function test (input, callback) {
$.post("example.com/endpoint", input, function(err, data) {
if (error || response.statusCode !== 200) {
callback(true, response)
}
callback(null, data)
})
}
test({
'id': 1,
'name': 'Mary'
}, function (err, data) {
if (err) {
console.log.error('Error!!')
console.log(data)
}
console.log.info(data)
})
これは、彼が関数にアクセスしてそれを変更でき(実際にはわからない)、 'null'が' $ arg2'に対して有効な値でない場合にのみ機能します。 –
@MagnusErikssonそれは、ユースケースに依存しますが、うまくいくかもしれません。 –
はい。しかし、それを指摘したかっただけです。 :) –
あなたはこのように機能をカリー化使用することができます。このpost
function foo($x, $y, $z) {
echo "$x - $y - $z";
}
$bar = function($z) {
foo('A', 'B', $z);
};
$bar('C');
も参照してください。
function foo($x, $y, $z) {
echo "$x - $y - $z";
}
function fnFoo($x, $y) {
return function($z) use($x,$y) {
foo($x, $y, $z);
};
}
$bar = fnFoo('A', 'B');
$bar('C');
いいえ、ありません。 '$ arg3'を渡すためには、' $ arg2'も渡す必要がありますが、 '$ arg2'のデフォルト値を渡すことはできますか? 'func_get_args()'を使うトリッキーなことや、名前付きの配列をパラメータとして使うことを除いて 'test( 'hello'、 'a'、 'world');' –
?いいえ。オプション引数*は、最後の必須引数の後に*を持つ必要があります。 (おそらく、php7に何かがありますが、わかりません) –
私は通常 'test( 'hello'、null、 'world!');そしてそれは他の言語にも使われます...おそらくテストをすることができます'$ arg2'がヌルであるかどうかを調べ、これに基づいて" default "値を適用します。 –