function fun($foo = 'FOO', $bar = 'BAR') {
echo "foo is $foo\n";
echo "bar is $bar\n";
}
fun(bar:"b");
foo is FOO
bar is b
PHP の関数って引数が多いのが多いし 引数だけみてこれがなんの値かわからないのが多かったからよさそう
fn1(1, 2, false, 'a', 3, true);
みたいなコードでそれぞれの引数が何を表してるのかなんて全然わからない
良さそうな機能ではあるんだけど 名前付き引数のみに制限はできないみたいなので 作る側が名前付き引数で使ってくれることを期待しても使う側が面倒だからと↑みたいコードで書くことは有り得そう
名前付き引数前提で考えてると引数の順番をそれほど考慮してないことも多くなりそうだし 名前の指定が必須ってできたほうがいいと思う
JavaScript だとオブジェクトで渡すフォーマットにしてその点を解決してるから PHP でもこれまでみたいに連想配列で受け取るほうがいいのかも
Python は構文として引数が positional のみか keyword のみかどっちでもありかを表現できるからいいんだけど
これを真似してくれないかな
def fn(foo, /, bar, *, baz):
print(foo, bar, baz)
foo は positional のみで keyword では渡せない
bar は positional でも keyword でも渡せる
baz は keyword のみで positional では渡せない
fn(1, 2, baz=3) # 1 2 3
fn(1, bar=2, baz=3) # 1 2 3
fn(foo=1, bar=2, baz=3) # error
fn(1, 2, 3) # error