我想定义一个函数doSomething(arg1, arg2)具有默认值到ARG1 = VAL和ARG2 = VAL

当我写

function doSomething($arg1="value1", $arg2="value2"){
 // do something
}

是否有可能现在调用doSomething的与默认ARG1和ARG2 = “new_value2”

有帮助吗?

解决方案

不,不幸的是,这是不可能的。如果定义$arg2,你需要定义$arg1为好。

其他提示

有时候,如果我有很多与默认参数,我将使用的阵列为包含参数和与默认值合并。

public function doSomething($requiredArg, $optional = array())
{
   $defaults = array(
      'arg1' => 'default',
      'arg2' -> 'default'
   );

   $options = array_merge($defaults, $optional);
}

真的才有意义,如果你有很多的争论,虽然

function doSomething( $arg1, $arg2 ) {
  if( $arg1 === NULL ) $arg1 = "value1";
  if( $arg2 === NULL ) $arg2 = "value2";
  ...
}

和到呼叫:

doSomething();
doSomething(NULL, "notDefault");

你有没有分配ARG1但不ARG2?如果没有,那么我会切换顺序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top