2013-08-04 193 views
1

我有我自己的函数'Parse',它位于对象'Core'中,该函数目前有5个参数,每个参数都有默认值[true,false]。默认功能参数值

说,如果我想改变的第三个参数,但保留其余的一样,我必须值分配给其余的或我可以跳过像这样:

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

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

任何反馈将是伟大的。

谢谢。

+2

有道理,但你还不如用一个阵列,而不是只有通过非默认这是不可能的 –

+2

有了很多争论。 –

+1

它似乎并没有达到PHP 5.5。 [跳过可选的函数参数](https://wiki.php.net/rfc/skipparams) – bitWorking

回答

0

这是不可能通过在函数定义本身内定义默认值的常用技术。 (但是,您可以省略所有的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'); 
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 
    } 
    ... 
}