我想定义一个doSomething(arg1, arg2)
默认值为 arg1=val 和 arg2=val的函数
当我写
function doSomething($arg1="value1", $arg2="value2"){
// do something
}
现在是否可以使用默认 arg1 和 arg2="new_value2" 调用 doSomething
我想定义一个doSomething(arg1, arg2)
默认值为 arg1=val 和 arg2=val的函数
当我写
function doSomething($arg1="value1", $arg2="value2"){
// do something
}
现在是否可以使用默认 arg1 和 arg2="new_value2" 调用 doSomething
有时,如果我有很多带有默认值的参数,我会使用一个数组来包含参数并将其与默认值合并。
public function doSomething($requiredArg, $optional = array())
{
$defaults = array(
'arg1' => 'default',
'arg2' -> 'default'
);
$options = array_merge($defaults, $optional);
}
但是,只有当您有很多争论时,它才真正有意义。
不,可悲的是,这是不可能的。如果你定义$arg2
,你也需要定义$arg1
。
function doSomething( $arg1, $arg2 ) {
if( $arg1 === NULL ) $arg1 = "value1";
if( $arg2 === NULL ) $arg2 = "value2";
...
}
并致电:
doSomething();
doSomething(NULL, "notDefault");
您是否曾经分配过 arg1 但没有分配过 arg2?如果没有,那么我会切换顺序。