Frage

Ich möchte arg1 = val und arg2 = val

eine Funktion doSomething(arg1, arg2) mit Standardwerten definieren,

Wenn ich schreibe

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

Ist es möglich, jetzt doSomething mit Standard arg1 und arg2 = "new_value2"

nennen
War es hilfreich?

Lösung

Nein, leider ist dies nicht möglich. Wenn Sie $arg2 definieren, müssen Sie $arg1 auch definieren.

Andere Tipps

Manchmal, wenn ich eine Menge Parameter mit Standardwerten hat, werde ich ein Array verwenden, um die Argumente zu enthalten und es mit Ausfällen verschmelzen.

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

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

Wirklich nur dann sinnvoll, wenn Sie eine Menge Argumente obwohl haben.

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

Und Aufruf:

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

Haben Sie jemals assign arg1 aber nicht arg2? Wenn nicht, dann würde ich die Reihenfolge wechseln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top