PHP:在函数上传递第二个参数,但保留第一个参数的默认值

时间:2018-10-22 11:16:23

标签: php laravel

问题是,我有一个带有3个参数的函数。所有三个参数都有一个默认值。但是可以仅使用以下参数之一来调用函数:

function check($a=1, $b=2, $c=3){
   echo 'a : ' . $a;
   echo 'b : ' . $b;
   echo 'c : ' . $c;
}

$res = check($c=5);

并期望得到以下结果:

a : 1
b : 2
c : 5

我尝试使用这种代码,但是发生的是将$c=5传递给第一个参数。在这种情况下,$a

1 个答案:

答案 0 :(得分:3)

不,您不能以这种方式这样做。 PHP将按照您在函数中定义的顺序使用值。 但是,可以将数据作为数组传递给函数。

$res = check(array('a' => $defaulta, ..., 'c' => 5))

在其中具有默认值的地方,例如$ defaulta / b / c。或者只是将它们硬编码。

希望这会有所帮助!