名前付きの関数パラメーターを持つことは可能ですphp
か? python
使用例は次のとおりです。
function foo($username = "", $password = "", $timeout = 10) {
}
オーバーライドしたい$timeout
:
foo("", "", 3);
醜い。私はむしろやりたい:
foo(timeout=3);
名前付きの関数パラメーターを持つことは可能ですphp
か? python
使用例は次のとおりです。
function foo($username = "", $password = "", $timeout = 10) {
}
オーバーライドしたい$timeout
:
foo("", "", 3);
醜い。私はむしろやりたい:
foo(timeout=3);
PHP 8.0 では、RFCの承認により、名前付き引数のサポートが追加されました。
名前付き引数は、値の前にパラメーター名とそれに続くコロンを付けることによって渡されます。パラメータ名として予約キーワードを使用できます。パラメータ名は識別子である必要があり、動的に指定することはできません。
たとえば、例で3番目のオプションパラメータのみを渡すには:
foo(timeout: 3);
PHP 8 より前の名前付きパラメーターは、PHP では使用できませんでした。技術的には、呼び出すfoo($timeout=3)
と最初に評価さ$timeout=3
れ、その結果が3
最初のパラメーターとして に渡されますfoo()
。また、PHP はパラメーターの順序を強制するため、同等の呼び出しはfoo("", "", $timeout=3)
. 他に 2 つのオプションがあります。
func_get_args()
を使用します。パラメータの数に基づいて、それぞれの処理方法を決定できます。多くの JQuery 関数は、このようなことを行います。これは簡単ですが、自己文書化されていないため、関数を呼び出す人を混乱させる可能性があります。そして、あなたの議論はまだ名前が付けられていません。...