默认函数PHP与Python中的变量

时间:2013-01-05 16:39:45

标签: php python function default-value

在Python中,可以使用具有多个变量的函数,这些变量都具有默认值。然后只传递其中一个值的值。所以,如果我有

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

然后我可以打电话

foo(b=29)

它会调用

foo(10,29,70) 

(使用所有值的默认值,以及该一个变量的确切值)。

PHP中有类似的东西吗?

2 个答案:

答案 0 :(得分:1)

没有与PHP相同的内容。您可以拥有函数参数的默认值,但它们是从左到右计算的,并且未命名:

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

}

在该示例中,两个变量是可选的,但如果要指定第二个变量,则必须指定第一个参数。

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);

答案 1 :(得分:1)

使用数组作为参数。例如:

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

a(array('b' => 29));