3

doSomething(arg1, arg2)デフォルト値をarg1=valおよびarg2=valに設定して関数を定義したい

私が書くとき

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

デフォルトのarg1およびarg2="new_value2"を使用してdoSomethingを呼び出すことは可能ですか?

4

4 に答える 4

8

デフォルトのパラメータがたくさんある場合は、配列を使用して引数を含め、デフォルトとマージすることがあります。

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

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

しかし、実際には多くの議論がある場合にのみ意味があります。

于 2010-05-13T19:50:36.707 に答える
5

いいえ、残念ながら、これは不可能です。を定義する場合は、同様$arg2に定義する必要があります。$arg1

于 2010-05-13T19:09:55.997 に答える
3
function doSomething( $arg1, $arg2 ) {
  if( $arg1 === NULL ) $arg1 = "value1";
  if( $arg2 === NULL ) $arg2 = "value2";
  ...
}

そして呼び出すために:

doSomething();
doSomething(NULL, "notDefault");
于 2010-05-13T19:10:42.813 に答える
2

arg1を割り当てますがarg2は割り当てませんか?そうでない場合は、順序を切り替えます。

于 2010-05-13T19:38:58.963 に答える