[英]How to escape function argument which has a default value in PHP?
我需要知道如何在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
如何以正確的方式進行上述函數調用?
但你可以這樣做,
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
演示 。
你不可能跳過你這樣做的論點。 只有當它們位於參數列表的末尾時,才能實現這一點。
在這方面已經提出了許多提案,但遺憾地從那里被拒絕了。
你可以在這里看到。
我希望通過這種方式你可以解決問題。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.