在Python中,可以使用具有多个变量的函数,这些变量都具有默认值。然后只传递其中一个值的值。所以,如果我有
function foo(a=10,b=50, c=70)
pass
pass
return
然后我可以打电话
foo(b=29)
它会调用
foo(10,29,70)
(使用所有值的默认值,以及该一个变量的确切值)。
PHP中有类似的东西吗?
答案 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));