1

Python では、すべてデフォルト値を持ついくつかの変数を持つ関数を持つことができます。そして、値の1つの値を渡すだけです。だから私が持っているなら

function foo(a=10,b=50, c=70)
    pass
    pass
    return

その後、私は呼び出すことができます

foo(b=29)

そしてそれは

foo(10,29,70) 

(すべての値にデフォルトを使用し、その 1 つの変数に正確な値を使用します)。

PHPで同様のことが可能ですか?

4

2 に答える 2

1

いいえ、PHP に相当するものはありません。関数の引数にデフォルト値を設定できますが、それらは左から右に評価され、名前は付けられません。

function test($var1 = 'default1', $var2 = 'default2')
{

}

この例では、2 つの変数はオプションですが、2 番目の引数を指定する場合は、最初の引数を指定する必要があります。

test(); // works
test('arg1'); // works
test('arg1', 'arg2'); // works
test('arg2'); // this will set the first argument, not the second.

オプションの引数に柔軟性が必要な場合の一般的な回避策は、引数として配列を渡すことです。

function test($options)
{

}

これは、単一の連想配列の形式で可変数の引数を持つことができます。

$options = array('var1' => 'arg1', 'var2' => 'arg2');
test($options);
于 2013-01-05T16:42:27.750 に答える
1

配列を引数として使用します。例えば:

function a(array $params) {
    $defaults = array(
        'a' => 10,
        'b' => 50,
        'c' => 70,
    );
    $params += $defaults;
    // use $params
}

a(array('b' => 29));
于 2013-01-05T16:43:20.343 に答える