【问题标题】:Default function parameter values [duplicate]默认函数参数值 [重复]
【发布时间】:2013-08-04 20:13:25
【问题描述】:

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

如果我想更改第三个参数,但保持其余参数不变,我是否必须为其余参数赋值还是可以这样跳过:

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

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

任何反馈都会很棒。

谢谢。

【问题讨论】:

标签: php function parameters default


【解决方案1】:

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

但是你可以创建一个快捷方式

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
   }
   ...
}

【讨论】:

    【解决方案2】:

    这是不可能通过在函数定义本身中定义默认值的常用技术来实现的。 (但是,如果有默认值,您可以省略 all args,或者提供初始 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');
    

    【讨论】:

      猜你喜欢
      • 2014-02-10
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      相关资源
      最近更新 更多