默认功能参数值

时间:2013-08-04 20:13:25

标签: php function parameters default

我有一个名为'Parse'的函数,它位于对象'Core'中,该函数到目前为止采用5个参数,每个参数都有默认值[true,false]。 / p>

如果我想更改第3个参数,但保持其余参数相同,我是否必须为其余参数指定值,或者我可以像这样跳过:

$Core->Parse(,,false,,);

不确定这对你是否有意义。在我继续做之前,我只是想问这个问题。或者,如果这是不可能的,除了填写其他参数值之外还有什么其他方法,或者没有?

任何反馈都会很棒。

感谢。

2 个答案:

答案 0 :(得分:0)

通过在函数定义本身中定义默认值的常用技术,这是不可能的。 (但是,如果存在默认值,则可以省略 all args,或者提供初始arg以及后续arg的默认值。)

即:使用......

function my_super_function($arg1='hello', $arg2='world') {
    // Do stuff
}

my_super_function(, 'mum');

......将无效。

但是,没有什么可以阻止你在函数本身中检查有效的默认值(使用你想要的任何标准)。

例如:

function my_super_function($arg1='hello', $arg2='world') {
    $arg1 = $arg1 ? $arg1 : 'hello';

    // Do stuff
}

my_super_function(null, 'mum');

答案 1 :(得分:0)

您必须提供所有参数,直到您想要设置的参数,如果您不需要第一个参数,只需使用函数定义中列出的默认值。

然而,你可以制作一个快捷方法

class Core {
   ...
   public function shortParse($somevalue) {
     $this->Parse("param 1 default value",
                  "param 2 default value",
                  $somevalue,
                  "param 4 default value", //dont need the next 2
                  "param 5 default value");//if they have default values
   }
   ...
}