我有一个名为'Parse
'的函数,它位于对象'Core
'中,该函数到目前为止采用5个参数,每个参数都有默认值[true,false]。 / p>
如果我想更改第3个参数,但保持其余参数相同,我是否必须为其余参数指定值,或者我可以像这样跳过:
$Core->Parse(,,false,,);
不确定这对你是否有意义。在我继续做之前,我只是想问这个问题。或者,如果这是不可能的,除了填写其他参数值之外还有什么其他方法,或者没有?
任何反馈都会很棒。
感谢。
答案 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
}
...
}