这似乎是我所知道的一个基本问题,但我找不到答案.
我们假设一个基本功能:
function basicFunction ( $var1,$var2 = 1,$var3 = 2,$var4 = 5 ) { // Do some stuff // Return }
现在让我们假设我想用以下变量调用该函数:
$var1 = 0 $var2 = 1 $var3 = 2 $var4 = 3
我可以做这个:
$someResult = basicFunction( 0,1,2,3 );
虽然已经设置了$var2和$var3,但是如何调用该函数而不必重复$var2和$var3的值?
PHP不支持重载.因此,如果不将它们移动到参数列表的右侧,则不能以任何方式跳过它们.
常见的解决方案是设置与预期不同类型的默认值(即NULL).然后在函数内设置实际默认值.这种方法并不是很干净,需要一些额外的代码,但如果情况需要,你可以使用:
function basicFunction($var1,$var2 = NULL,$var3 = NULL,$var4 = NULL) { if ($var2 === NULL) { $var2 = 1; } // ...