我需要知道如何在PHP中转义具有默认值的参数? 想象一下我的功能是:
function avg($a = 1 , $b = 2) {
return $a+$b;
}
,我想用以下形式称呼它:
avg(3,4); // Correct Result: 7
avg(2); // Expected result: 4
avg(,5) // Expected result: 6
如何正确调用上面的函数?
答案 0 :(得分:0)
但是您可以这样做
function avg(...$args)
{
list($a, $b) = $args + [1, 2];
$a = !empty($a) ? $a : 1;
return $a + $b;
}
print_r(avg(3, 4)); // Correct Result: 7
print_r(avg(2)); // Expected result: 4
print_r(avg(null, 5)); // Expected result: 6
Demo。
不可能跳过那样做的参数。仅当它们位于参数列表的末尾时,您才能实现该目标。
在这方面已经提出了许多建议,但不幸地被拒绝。
您可以看到那些here。
答案 1 :(得分:0)
我希望您可以通过这种方式解决问题。
Using non-scalar types as default values
function avg($a = null,$b =null) {
$a = is_null($a) ? 1 : $a;
$b = is_null($b) ? 2 : $b;
return $a+$b;
}
echo avg(3,4); // Correct Result: 7
echo avg(2,null); // Expected result: 4
echo avg(null,5); // Expected result: 6